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:
gid873412E2-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().