GUID di SQL Server

Guid Di Sql Server



In questo post impareremo come utilizzare il tipo uniqueidentifier in SQL Server. Useremo anche le funzioni NEWID() e NEWSEQUENTIALID() per generare valori GUID.

Tipo di identificatore univoco di SQL Server

Si tratta di un valore GUID a 16 byte utilizzato in una colonna o in una variabile locale. È possibile creare un valore di tipo uniqueidentifier utilizzando le funzioni NEWID() e NEWSEQUENTIALID().

È inoltre possibile generare un valore GUID convertendo un valore stringa nel formato xxxxxxxx-xxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx dove x è una cifra esadecimale nell'intervallo 0 – 9.







A causa della 'casualità' di un valore GUID, è garantito che un valore GUID possa essere univoco in un database o persino nei server. Questo rende un eccellente tipo di dati per identificare in modo univoco un dato valore.



Funzione NEWID() di SQL Server

La funzione NEWID() ci permette di generare un nuovo valore univoco del tipo uniqueidentifier. La sintassi è quella mostrata:



MODIFICARE ( )

Per esempio:





dichiara @gid identificatore univoco;
set @gid = CAMBIA();
seleziona @gid come gid;

Le istruzioni precedenti dovrebbero restituire un valore GUID come:

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

Funzione NEWSEQUENTIALID() di SQL Server

Questa funzione consente di generare valori GUID univoci in sequenza. Funziona generando un valore GUID maggiore del GUID generato in precedenza.



Ciò lo rende utile per l'utilizzo come identificatore di riga poiché genera valori in sequenza anziché determinare manualmente il successivo valore GUID utilizzando la funzione NEWID().

La sintassi della funzione è come mostrato:

NEWSEQUENTIALID ( )

Utilizzo del GUID di SQL Server come identificatore di riga

L'esempio seguente mostra come utilizzare la funzione newsequentialid() come identificatore di riga per una determinata colonna.

crea voci di tabella (
id uniqueidentifier not null default newsequentialid() chiave primaria,
nome_server varchar(50),
indirizzo_server varchar(255) non nullo,
compression_method varchar(100) predefinito 'nessuno',
size_on_disk float non nullo,
dimensione_float compresso,
total_records int non nullo,
init_date data
);
inserire
in
VOCI(nome_server,
indirizzo del server,
metodo di compressione,
spazio sul disco,
dimensione_compressa,
totale_record,
init_data)
i valori
('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');

Nell'esempio precedente, impostiamo la colonna ID come tipo uniqueidentifier e il valore predefinito come valore generato dalla funzione newsequentialid().

La tabella risultante è quella mostrata:

selezionare * dalle voci;

Produzione:

Sebbene l'utilizzo di valori GUID possa fornire un'univocità rigorosa, può essere difficile durante il debug o la selezione di valori specifici.

Conclusione

In questa guida, hai appreso il tipo di identificatore univoco in SQL Server. Hai anche imparato a generare valori GUID utilizzando le funzioni NEWID() e NEWSEQUENTIALID().