GUID SQL Server

Guid Sql Server



În această postare, vom învăța cum să folosim tipul de identificare unică în SQL Server. Vom folosi, de asemenea, funcțiile NEWID() și NEWSEQUENTIALID() pentru a genera valori GUID.

Tipul de identificare unică SQL Server

Aceasta este o valoare GUID de 16 octeți utilizată într-o coloană sau o variabilă locală. Puteți crea o valoare de tip unicidentifier folosind funcțiile NEWID() și NEWSEQUENTIALID().

De asemenea, puteți genera o valoare GUID prin conversia unei valori șir în formatul xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx unde x este o cifră hexazecimală în intervalul 0 – 9.







Datorită „aleatoriei” unei valori GUID, este garantat că o valoare GUID poate fi unică într-o bază de date sau chiar pe servere. Acest lucru face un tip de date excelent pentru identificarea unică a unei valori date.



Funcția SQL Server NEWID().

Funcția NEWID() ne permite să generăm o nouă valoare unică de tip unicidentifier. Sintaxa este așa cum se arată:



SCHIMBARE ( )

De exemplu:





declara @gid identificatorul unic;
set @gid = CHANGE();
selectați @gid ca gid;

Declarațiile de mai sus ar trebui să returneze o valoare GUID ca:

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

Funcția SQL Server NEWSEQUENTIALID().

Această funcție vă permite să generați secvențial valori GUID unice. Funcționează prin generarea unei valori GUID care este mai mare decât GUID-ul generat anterior.



Acest lucru îl face util pentru utilizare ca identificator de rând, deoarece generează valori secvenţial, mai degrabă decât determinarea manuală a următoarei valori GUID utilizând funcţia NEWID().

Sintaxa funcției este așa cum se arată:

NEWSEQUENTIALID ( )

Folosind GUID SQL Server ca identificator de rând

Următorul exemplu arată cum să utilizați funcția newsequentialid() ca identificator de rând pentru o anumită coloană.

creați intrări în tabel(
id uniqueidentifier nu este cheia primară implicită newsequentialid() nulă,
nume_server varchar(50),
server_address varchar(255) nu este null,
compression_method varchar(100) implicit „none”,
size_on_disk float nu este nul,
size_compressed float,
total_records int nu null,
init_date data
);
introduce
în
ENTRIES(nume_server,
adresa serverului,
compresie_method,
spațiu pe disk,
dimensiune_comprimată,
total_records,
init_date)
valorile
('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');

În exemplul de mai sus, setăm coloana ID ca tip de identificator unic și valoarea implicită ca valoare generată de funcția newsequentialid().

Tabelul rezultat este așa cum se arată:

selectați * din intrări;

Ieșire:

Deși utilizarea valorilor GUID poate oferi unicitate strictă, poate fi dificilă atunci când depanați sau selectați anumite valori.

Concluzie

În acest ghid, ați aflat despre tipul de identificare unică din SQL Server. De asemenea, ați învățat cum să generați valori GUID folosind funcțiile NEWID() și NEWSEQUENTIALID().