SQL Server GUID

Sql Server Guid



I dette innlegget vil vi lære hvordan du bruker den unike identifikatortypen i SQL Server. Vi vil også bruke funksjonene NEWID() og NEWSEQUENTIALID() for å generere GUID-verdier.

SQL Server Uniqueidentifier Type

Dette er en 16-byte GUID-verdi som brukes i en kolonne eller en lokal variabel. Du kan opprette en unik identifikatortypeverdi ved å bruke funksjonene NEWID() og NEWSEQUENTIALID().

Du kan også generere en GUID-verdi ved å konvertere en strengverdi i formatet xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx der x er et heksadesimalt siffer i området 0 – 9.







På grunn av 'tilfeldigheten' til en GUID-verdi, er det garantert at en GUID-verdi kan være unik på tvers av en database eller til og med servere. Dette er en utmerket datatype for unik identifisering av en gitt verdi.



SQL Server NEWID()-funksjon

NEWID()-funksjonen lar oss generere en ny unik verdi av unikidentifikatortypen. Syntaksen er som vist:



ENDRING ( )

For eksempel:





erklær @gid unik identifikator;
sett @gid = CHANGE();
velg @gid som gid;

Utsagnene ovenfor skal returnere en GUID-verdi som:

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

SQL Server NEWSEQUENTIALID()-funksjon

Denne funksjonen lar deg generere unike GUID-verdier sekvensielt. Det fungerer ved å generere en GUID-verdi som er større enn den tidligere genererte GUIDen.



Dette gjør den nyttig for bruk som en radidentifikator siden den genererer verdier sekvensielt i stedet for manuelt å bestemme neste GUID-verdi ved hjelp av NEWID()-funksjonen.

Funksjonssyntaksen er som vist:

NEWSEQUENTIALID ( )

Bruker SQL Server GUID som radidentifikator

Følgende eksempel viser hvordan du bruker newsequentialid()-funksjonen som en radidentifikator for en gitt kolonne.

opprett tabelloppføringer(
id uniqueidentifier ikke null standard newsequentialid() primærnøkkel,
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
);
sett inn
inn i
ENTRIES(tjenernavn,
server adresse,
komprimeringsmetode,
størrelse_på_disk,
size_compressed,
total_records,
init_date)
verdier
('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 eksemplet ovenfor setter vi ID-kolonnen som den unike identifikatortypen og standardverdien som verdien generert av newsequentialid()-funksjonen.

Den resulterende tabellen er som vist:

velg * fra oppføringer;

Produksjon:

Selv om bruk av GUID-verdier kan gi streng unikhet, kan det være vanskelig når du feilsøker eller velger spesifikke verdier.

Konklusjon

I denne veiledningen lærte du om den unike identifikatortypen i SQL Server. Du har også lært hvordan du genererer GUID-verdier ved å bruke funksjonene NEWID() og NEWSEQUENTIALID().