GUID de SQL Server

Guid De Sql Server



En aquesta publicació, aprendrem a utilitzar el tipus d'identificador únic a SQL Server. També utilitzarem les funcions NEWID() i NEWSEQUENTIALID() per generar valors GUID.

Tipus d'identificador únic de SQL Server

Aquest és un valor GUID de 16 bytes utilitzat en una columna o una variable local. Podeu crear un valor de tipus identificador únic mitjançant les funcions NEWID() i NEWSEQUENTIALID().

També podeu generar un valor GUID convertint un valor de cadena en el format xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx on x és un dígit hexadecimal en l'interval de 0 a 9.







A causa de l''aleatorietat' d'un valor GUID, es garanteix que un valor GUID pot ser únic en una base de dades o fins i tot en servidors. Això fa un tipus de dades excel·lent per identificar de manera única un valor determinat.



Funció SQL Server NEWID().

La funció NEWID() ens permet generar un nou valor únic del tipus uniqueidentifier. La sintaxi és la que es mostra:



CANVI ( )

Per exemple:





declarar @gid identificador únic;
set @gid = CHANGE();
seleccioneu @gid com a gid;

Les declaracions anteriors haurien de retornar un valor GUID com:

gid
873412E2-A926-4EAB-B99F-A1E47E727355

Funció SQL Server NEWSEQUENTIALID().

Aquesta funció us permet generar valors GUID únics seqüencialment. Funciona generant un valor GUID que és més gran que el GUID generat anteriorment.



Això fa que sigui útil per utilitzar-lo com a identificador de fila, ja que genera valors seqüencialment en lloc de determinar manualment el següent valor GUID mitjançant la funció NEWID().

La sintaxi de la funció és la que es mostra:

NEWSEQUENTIALID ( )

Utilitzant el GUID de SQL Server com a identificador de fila

L'exemple següent mostra com utilitzar la funció newsequentialid() com a identificador de fila per a una columna determinada.

crear entrades de taula (
id uniqueidentifier no és nul la clau primària predeterminada newsequentialid(),
nom_servidor varchar(50),
adreça_server varchar(255) no nul,
compression_method varchar(100) per defecte 'cap',
size_on_disk float no nul,
size_compressed float,
total_records int no nul,
data d'inici_data
);
inserir
a
ENTRADES(nom_servidor,
adreça del servidor,
mètode_compressió,
mida_al_disc,
mida_comprimida,
total_records,
data_inici)
valors
('MySQL','localhost:3306','lz77',90.66,40.04,560000,'2022-01-02'),
('Redis','localhost:6307','Snappy',3.55,998.2,100000,'2022-03-19'),
('PostgreSQL','localhost:5432','pglz',101.2,98.01,340000,'2022-11-11'),
('Elasticsearch','localhost:9200','lz4',333.2,300.2,1200000,'2022-10-08'),
('MongoDB','localhost:27017','Snappy',4.55,4.10,620000,'2021-12-12'),
('Apache Cassandra','localhost:9042','zstd',300.3,200.12,10000000,'2020-03-21');

A l'exemple anterior, establim la columna ID com el tipus d'identificador únic i el valor predeterminat com el valor generat per la funció newsequentialid().

La taula resultant és la que es mostra:

seleccioneu * de les entrades;

Sortida:

Tot i que l'ús de valors GUID pot proporcionar una unicitat estricta, pot ser difícil a l'hora de depurar o seleccionar valors específics.

Conclusió

En aquesta guia, heu après sobre el tipus d'identificador únic a SQL Server. També heu après a generar valors GUID mitjançant les funcions NEWID() i NEWSEQUENTIALID().