SQL Server GUID

Sql Server Guid



I dette indlæg lærer vi, hvordan du bruger den unikke id-type i SQL Server. Vi vil også bruge funktionerne NEWID() og NEWSEQUENTIALID() til at generere GUID-værdier.

SQL Server Uniqueidentifier Type

Dette er en 16-byte GUID-værdi, der bruges i en kolonne eller en lokal variabel. Du kan oprette en værdi for en unik identifikator ved hjælp af funktionerne NEWID() og NEWSEQUENTIALID().

Du kan også generere en GUID-værdi ved at konvertere en strengværdi i formatet xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx, hvor x er et hexadecimalt ciffer i intervallet 0 – 9.







På grund af 'tilfældigheden' af en GUID-værdi er det garanteret, at en GUID-værdi kan være unik på tværs af en database eller endda servere. Dette er en fremragende datatype til entydigt at identificere en given værdi.



SQL Server NEWID() Funktion

Funktionen NEWID() giver os mulighed for at generere en ny unik værdi af typen unikidentifikator. Syntaksen er som vist:



LAVE OM ( )

For eksempel:





erklær @gid entydig identifikator;
sæt @gid = ÆNDRING();
vælg @gid som gid;

Ovenstående udsagn skal returnere en GUID-værdi som:

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

SQL Server NEWSEQUENTIALID() Funktion

Denne funktion giver dig mulighed for at generere unikke GUID-værdier sekventielt. Det virker ved at generere en GUID-værdi, der er større end den tidligere genererede GUID.



Dette gør det nyttigt til brug som en række-id, da det genererer værdier sekventielt i stedet for manuelt at bestemme den næste GUID-værdi ved hjælp af NEWID()-funktionen.

Funktionens syntaks er som vist:

NEWSEQUENTIALID ( )

Brug af SQL Server GUID som Row Identifier

Følgende eksempel viser, hvordan du bruger funktionen newsequentialid() som en række-id for en given kolonne.

oprette tabelposter(
id uniqueidentifier ikke null standard newsequentialid() primær nøgle,
servernavn varchar(50),
server_adresse varchar(255) ikke null,
compression_method varchar(100) standard 'ingen',
size_on_disk float ikke null,
size_compressed float,
total_records int ikke null,
init_date dato
);
indsætte
ind i
ENTRIES(server_navn,
serveradresse,
kompressionsmetode,
størrelse_på_disk,
størrelse_komprimeret,
total_records,
init_date)
værdier
('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');

I ovenstående eksempel indstiller vi ID-kolonnen som den unikke id-type og standardværdien som den værdi, der genereres af newsequentialid()-funktionen.

Den resulterende tabel er som vist:

vælg * fra poster;

Produktion:

Selvom brug af GUID-værdier kan give en streng unikhed, kan det være svært, når du fejlfinder eller vælger specifikke værdier.

Konklusion

I denne vejledning lærte du om den unikke id-type i SQL Server. Du har også lært, hvordan du genererer GUID-værdier ved hjælp af funktionerne NEWID() og NEWSEQUENTIALID().