SQL

Tipos de datos GUID de SQL Server

Estrada Web Group
Estrada Web Group
Tipos de datos GUID de SQL Server

Resumen: en este tutorial, aprenderás sobre los tipos de datos GUID de SQL Server y cómo usar la función NEWID() para generar valores GUID.

Introducción al tipo de datos GUID de SQL Server

Todas las cosas en nuestro mundo están numeradas, por ejemplo, los libros tienen ISBN, los automóviles tienen VIN y las personas tienen números de seguro social (SSN).

Los números, o identificadores, nos ayudan a hacer referencia a las cosas sin ambigüedades. Por ejemplo, podemos identificar a John Doe usando su número único de seguro social 123-45-6789.

Un identificador único global o GUID es una versión más amplia de este tipo de números de identificación.

Se garantiza que un GUID es único en tablas, bases de datos e incluso servidores.

En SQL Server, GUID es un tipo de datos binarios de 16 bytes, que se genera mediante la función NEWID():

SELECT
    NEWID() AS GUID;

Si ejecutas la declaración anterior varias veces, verás un valor diferente cada vez. Aquí esta uno de ellos:

GUID
------------------------------------
3297F0F2-35D3-4231-919D-1CFCF4035975

(1 row affected)

En SQL Server, el tipo de datos UNIQUEIDENTIFIER contiene valores GUID.

Las siguientes sentencias declaran una variable con tipo UNIQUEIDENTIFIER y le asignan un valor GUID generado por la función NEWID().

DECLARE
    @id UNIQUEIDENTIFIER;

SET @id = NEWID();

SELECT
    @id AS GUID;

Resultado:

GUID
------------------------------------
69AA3BA5-D51E-465E-8447-ECAA1939739A

(1 row affected)

Uso de GUID de SQL Server como clave principal

A veces, se prefiere usar valores GUID para la columna de clave principal de una tabla que usar números enteros.

El uso de GUID como clave principal de una tabla ofrece las siguientes ventajas:

  • Los valores GUID son globalmente únicos en tablas, bases de datos e incluso servidores. Por lo tanto, permite fusionar datos de diferentes servidores con facilidad.
  • Los valores de GUID no exponen la información, por lo que es más seguro usarlos en una interfaz pública, como una URL. Por ejemplo, si tienes la URL https://estradawebgroup.com/customer/100/ URL, no es tan difícil encontrar clientes con id 101, 102, etc. Sin embargo, con GUID, no es posible: https://estradawebgroup.com/customer/F4AB02B7-9D55-483D-9081-CC4E3851E851/

Además de estas ventajas, almacenar GUID en la columna de clave principal de una tabla tiene las siguientes desventajas:

    Los valores GUID (16 bytes) requieren más almacenamiento que INT (4 bytes) o incluso BIGINT (8 bytes)
    Los valores GUID dificultan la resolución de problemas y la depuración, comparando WHERE id = 100 con WHERE id = 'F4AB02B7-9D55-483D-9081-CC4E3851E851'.

Ejemplo de GUID de SQL Server

Primero, crea una nueva tabla llamada clientes en el esquema de marketing:

CREATE SCHEMA marketing;
GO

CREATE TABLE marketing.customers(
    customer_id UNIQUEIDENTIFIER DEFAULT NEWID(),
    first_name NVARCHAR(100) NOT NULL,
    last_name NVARCHAR(100) NOT NULL,
    email VARCHAR(200) NOT NULL
);
GO

En segundo lugar, inserta filas nuevas en la tabla marketing.customers:

INSERT INTO
    marketing.customers(first_name, last_name, email)
VALUES
    ('John','Doe','john.doe@estradawebgroup.com'),
    ('Jane','Doe','jane.doe@estradawebgroup.com');

En tercer lugar, consulta los datos de la tabla marketing.customers:

SELECT
    customer_id,
    first_name,
    last_name,
    email
FROM
    marketing.customers;

Resultado:

customer_id first_name last_name email
02521D0D-433D-49AE-827E-48F95EF5A6BD John Doe john.doe@estradawebgroup.com
7AC8ED66-F281-446A-A561-80D6CF63CE99 Jane Doe jane.doe@estradawebgroup.com

En este tutorial, aprendiste sobre el GUID de SQL Server y cómo usar la función NEWID() para generar valores GUID.

 

Compartir artículo:

Más artículos geniales

Expresión CASE de SQL Server

Expresión CASE de SQL Server

Resumen: en este tutorial, aprenderás a usar la expresión CASE de SQL Server para agregar lógica if-else a consultas SQL.

Ver artículo completo
¿Cómo restringir una columna en SQL Server que no acepte valores nulos con Not Null?

¿Cómo restringir una columna en SQL Server que no acepte valores nulos con Not Null?

En este tutorial, aprenderáS cómo usar la restricción NOT NULL o IS NULL de SQL Server para garantizar que los datos contenidos en una columna no sean NULL.

Ver artículo completo
¿Cómo filtar registos con una subconsulta usando el operador ALL de SQL Server?

¿Cómo filtar registos con una subconsulta usando el operador ALL de SQL Server?

Resumen: en este tutorial, aprenderás a usar el operador ALL de SQL Server para comparar un valor con una lista de conjuntos de valores de una columna.

Ver artículo completo

Manténgase actualizado

Obtenga excelente contenido en su bandeja de entrada todas las semanas.
Solo contenido excelente, no compartimos su correo electrónico con terceros.
Subir al inicio de la pantalla