uniqueidentifier (Transact-SQL)

Es un GUID de 16 bytes.

Comentarios

Una columna o una variable local de tipo de datos uniqueidentifier se puede inicializar en un valor de las siguiente formas:

  • Mediante la función NEWID.

  • Mediante la conversión a partir de una constante de cadena con el formato xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx, donde cada x es un dígito hexadecimal en el intervalo 0-9 o a-f. Por ejemplo, 6F9619FF-8B86-D011-B42D-00C04FC964FF es un valor uniqueidentifier válido.

Con los valores uniqueidentifier se pueden utilizar operadores de comparación. No obstante, no se implementa la ordenación mediante la comparación de los patrones de bits de los dos valores. Las únicas operaciones que se pueden realizar con un valor uniqueidentifier son comparaciones (=, <>, <, >, <=, >=) y comprobaciones para NULL (IS NULL e IS NOT NULL). No es posible utilizar otros operadores aritméticos. Con el tipo de datos uniqueidentifier, se pueden utilizar todas las propiedades y restricciones de columna, excepto IDENTITY.

La replicación de mezcla y la replicación transaccional con suscripciones de actualización usan columnas uniqueidentifier para garantizar que las filas se identifican de forma única en varias copias de la tabla.

Convertir datos uniqueidentifier

El tipo uniqueidentifier se considera un tipo de carácter para la conversión desde una expresión de caracteres y, por tanto, está sujeto a las reglas de truncamiento para la conversión a un tipo de carácter. Es decir, cuando se convierten expresiones de carácter a un tipo de datos de carácter de un tamaño distinto, se truncan los valores que son demasiado grandes para el nuevo tipo de datos. Vea la sección Ejemplos.

Ejemplos

En el ejemplo siguiente se convierte un valor uniqueidentifier a un tipo de datos char.

DECLARE @myid uniqueidentifier = NEWID();
SELECT CONVERT(char(255), @myid) AS 'char';

En el ejemplo siguiente se muestra el truncamiento de los datos cuando el valor es demasiado largo para el tipo de datos al que se va a convertir. Puesto que el tipo uniqueidentifier está limitado a 36 caracteres, se truncan los caracteres que superan esa longitud.

DECLARE @ID nvarchar(max) = N'0E984725-C51C-4BF4-9960-E1C80E27ABA0wrong';
SELECT @ID, CONVERT(uniqueidentifier, @ID) AS TruncatedValue;

El conjunto de resultados es el siguiente.

String                                       TruncatedValue
-------------------------------------------- ------------------------------------
0E984725-C51C-4BF4-9960-E1C80E27ABA0wrong    0E984725-C51C-4BF4-9960-E1C80E27ABA0

(1 row(s) affected)

Vea también

Referencia

ALTER TABLE (Transact-SQL)

CAST y CONVERT (Transact-SQL)

CREATE TABLE (Transact-SQL)

Tipos de datos (Transact-SQL)

DECLARE @local\_variable (Transact-SQL)

NEWID (Transact-SQL)

SET @local\_variable (Transact-SQL)

Conceptos

Suscripciones actualizables para replicación transaccional