Вы находитесь на странице: 1из 9

BASES DE DATOS - SQL

TIPO DE DATOS UNIQUEIDENTIFIER

Propiedad Identity SQL Server


Cuando se insertan valores en una tabla con una

columna de identificadores (IDENTITY), el motor de base de datos genera automticamente el siguiente valor de identidad agregando el incremento al valor de inicializacin. No se puede modificar una columna de tabla existente para agregar la propiedad IDENTITY.

Propiedad Identity SQL Server - Caractersticas


Las tablas slo pueden contener una columna definida

con la propiedad IDENTITY y dicha columna debe definirse con un tipo de datos decimal, int, numeric, smallint, bigint o tinyint. Se pueden especificar los valores de inicializacin e incremento. El valor predeterminado es 1 para ambos. La columna de identificadores no debe aceptar valores NULL ni contener ninguna definicin ni objeto DEFAULT. Se puede utilizar SET IDENTITY_INSERT para deshabilitar la propiedad IDENTITY de una columna y permitir que se inserten valores de forma explcita.

Propiedad Identity SQL Server - Uso


IDENTITY [ (base , incremento) ]
USE AdventureWorks2012 IF OBJECT_ID ('dbo.new_employees', 'U') IS NOT NULL DROP TABLE new_employees; GO CREATE TABLE new_employees ( id_num int IDENTITY(1,1), fname varchar (20), minit char(1), lname varchar(30) );
INSERT new_employees (fname, minit, lname) VALUES ('Karin', 'F', 'Josephs'); INSERT new_employees (fname, minit, lname) VALUES ('Pirkko', 'O', 'Koskitalo');

Identificadores nicos globales


Aunque la propiedad IDENTITY automatice la

numeracin de las filas de una tabla, dos tablas distintas, cada una con sus propias columnas de identificadores, pueden generar los mismos valores. Esto es debido a que se garantiza que la propiedad IDENTITY es nica slo para la tabla en la que se utiliza. Si una aplicacin debe generar una columna de identificadores nica para toda la base de datos, use el tipo de datos uniqueidentifier y la funcin NEWID o NEWSEQUENTIALID(). A diferencia de las columnas definidas con la propiedad IDENTITY, el Motor de base de datos no genera automticamente valores para una columna de tipo uniqueidentifier.

Identificadores nicos globales


El tipo de datos uniqueidentifier almacena valores

binarios de 16 bytes que funcionan como identificadores exclusivos globales (GUID). Un GUID es un nmero binario exclusivo; ningn otro equipo del mundo generar un duplicado de ese GUID.

Identificadores nicos globales - ROWGUIDCOL


Se usa para indicar que la nueva columna es una

columna de GUID de filas. Con la propiedad ROWGUIDCOL se puede especificar una columna uniqueidentifier para cada tabla.

Identificadores nicos globales ROWGUIDCOL (ventajas)


Tenemos las ventajas siguientes con este enfoque: El UNIQUEIDENTIFIER junto con ROWGUIDCOL

NEWSEQUENTIALID () es mucho ms eficiente que UNIQUEIDENTIFIER normal junto con NEWID (). (ejemplo) es de naturaleza secuencial, similar a los valores IDENTITY.

Los identificadores nicos generados con el segundo enfoque

No puede haber un mximo de ROWGUIDCOL para una tabla. Puede consultar la tabla para ROWGUIDCOL. Ejemplo:

ROWGUIDCOL SELECT FROM MyTable

Identificadores nicos globales ROWGUIDCOL (uso)


// // Uso de UNIQUEIDENTIFIER con NEWID() // CREATE TABLE MyTable (ID UNIQUEIDENTIFIER PRIMARY KEY DEFAULT NEWID()... En el ejemplo de arriba los identificadores no tienen secuencia.

// //Uso de UNIQUEIDENTIFIER con ROWGUIDCOL y NEWSEQUENTIALID() // CREATE TABLE MyTable (ID UNIQUEIDENTIFIER ROWGUIDCOL PRIMARY KEY DEFAULT NEWSEQUENTIALID()... En el ejemplo de abajo los identificadores tienen una secuencia natural.

Вам также может понравиться