miércoles, 27 de diciembre de 2017

Uniqueidentifier en T-SQL

El tipo de datos uniqueidentifier permite asignar valores a columnas de las tablas o a variables de datos en T-SQL con el formato xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx, donde cada X es un dígito hexadecimal.
Para obtener un valor de tipo uniqueidentifier en T-SQL se utiliza la función NEWID().

DECLARE @myid uniqueidentifier ; 
SET @myid = 'A972C577-DFB0-064E-1189-0154C99310DAAC12'; 
SELECT @myid;


Es posible convertir una cadena de caracteres a Uniqueidentifier siempre que se ajuste al formato indicado previamente.

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

En caso de que se intente convertir una cadena con formato correcto pero con una longitud superior a la aceptada se truncará la cadena de caracteres.

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

Se pueden consultar más detalles sobre este tipo de datos aquí, y sobre la función NEWID() aquí.