SQL Server GUID

Sql Server Guid



I det här inlägget kommer vi att lära oss hur man använder unikidentifieringstypen i SQL Server. Vi kommer också att använda funktionerna NEWID() och NEWSEQUENTIALID() för att generera GUID-värden.

SQL Server Uniqueidentifier Typ

Detta är ett 16-byte GUID-värde som används i en kolumn eller en lokal variabel. Du kan skapa ett värde för unik identifieringstyp med funktionerna NEWID() och NEWSEQUENTIALID().

Du kan också generera ett GUID-värde genom att konvertera ett strängvärde i formatet xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx där x är en hexadecimal siffra i intervallet 0 – 9.







På grund av 'slumpmässigheten' hos ett GUID-värde, är det garanterat att ett GUID-värde kan vara unikt över en databas eller till och med servrar. Detta är en utmärkt datatyp för att unikt identifiera ett givet värde.



SQL Server NEWID() Funktion

Funktionen NEWID() låter oss generera ett nytt unikt värde av typen unikidentifierare. Syntaxen är som visas:



FÖRÄNDRA ( )

Till exempel:





deklarera @gid unikidentifierare;
set @gid = CHANGE();
välj @gid som gid;

Ovanstående uttalanden bör returnera ett GUID-värde som:

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

SQL Server NEWSEQUENTIALID() Funktion

Denna funktion låter dig generera unika GUID-värden sekventiellt. Det fungerar genom att generera ett GUID-värde som är större än det tidigare genererade GUID.



Detta gör det användbart för användning som en radidentifierare eftersom det genererar värden sekventiellt snarare än att manuellt bestämma nästa GUID-värde med hjälp av NEWID()-funktionen.

Funktionens syntax är som visas:

NEWSEQUENTIALID ( )

Använder SQL Server GUID som radidentifierare

Följande exempel visar hur du använder funktionen newsequentialid() som en radidentifierare för en given kolumn.

skapa tabellposter(
id uniqueidentifier inte null standardnyckelnyckel för newsequentialid()
servernamn varchar(50),
server_address varchar(255) inte null,
compression_method varchar(100) standard 'ingen',
size_on_disk float inte null,
size_compressed float,
total_records int inte null,
init_date date
);
Föra in
in i
ENTRIES(servernamn,
server adress,
komprimeringsmetod,
storlek på disk,
size_compressed,
totala_rekord,
init_date)
värden
('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 exemplet ovan ställer vi in ​​ID-kolumnen som den unika identifieringstypen och standardvärdet som det värde som genereras av funktionen newsequentialid().

Den resulterande tabellen är som visas:

välj * från poster;

Produktion:

Även om användning av GUID-värden kan ge strikt unikhet, kan det vara svårt när man felsöker eller väljer specifika värden.

Slutsats

I den här guiden lärde du dig om unikidentifieringstypen i SQL Server. Du lärde dig också hur du genererar GUID-värden med funktionerna NEWID() och NEWSEQUENTIALID().