SQL Server GUID

Sql Server Guid



Ebben a bejegyzésben megtudjuk, hogyan kell használni az egyedi azonosító típust az SQL Serverben. A NEWID() és NEWSEQUENTIALID() függvényeket is használjuk a GUID értékek generálásához.

SQL Server egyedi azonosító típusa

Ez egy 16 bájtos GUID érték, amelyet oszlopban vagy helyi változóban használnak. Létrehozhat egyedi azonosító típusú értéket a NEWID() és NEWSEQUENTIALID() függvényekkel.

GUID-értéket generálhat egy karakterlánc értékének xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx formátumú konvertálásával is, ahol x egy hexadecimális számjegy 0 és 9 között.







A GUID-érték „véletlenszerűsége” miatt garantált, hogy a GUID-érték egyedi lehet az adatbázisban vagy akár a szervereken is. Ez egy kiváló adattípus egy adott érték egyedi azonosítására.



SQL Server NEWID() függvény

A NEWID() függvény lehetővé teszi, hogy az egyedi azonosító típusú új egyedi értéket állítsuk elő. A szintaxis a következő:



VÁLTOZÁS ( )

Például:





deklarálja az @gid egyedi azonosítót;
set @gid = CHANGE();
válasszuk a @gid-t gidként;

A fenti utasításoknak egy GUID értéket kell visszaadniuk:

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

SQL Server NEWSEQUENTIALID() függvény

Ez a funkció lehetővé teszi egyedi GUID értékek egymás utáni generálását. Úgy működik, hogy egy olyan GUID értéket generál, amely nagyobb, mint a korábban generált GUID.



Ez hasznossá teszi sorazonosítóként való használatát, mivel szekvenciálisan állítja elő az értékeket, nem pedig manuálisan határozza meg a következő GUID értéket a NEWID() függvény segítségével.

A függvény szintaxisa a következő:

NEWSEQUENTIALID ( )

SQL Server GUID használata sorazonosítóként

A következő példa bemutatja, hogyan használható a newssequentialid() függvény sorazonosítóként egy adott oszlophoz.

táblázat bejegyzések létrehozása (
azonosító egyedi azonosító nem null alapértelmezett newssequentialid() elsődleges kulcs,
szerver_neve varchar(50),
szerver_címe varchar(255) nem null,
compression_method varchar(100) alapértelmezett 'none',
size_on_disk float nem null,
size_compressed float,
total_records int nem null,
kezdeti_dátum dátuma
);
betét
-ba
ENTRIES(szerver_neve,
szerver címe,
tömörítési_módszer,
size_on_disk,
size_compressed,
total_records,
kezdeti_dátum)
értékeket
('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');

A fenti példában az ID oszlopot egyedi azonosító típusként, az alapértelmezett értéket pedig a newsequentialid() függvény által generált értékként állítjuk be.

Az eredményül kapott táblázat a következő:

válassza ki a * bejegyzéseket;

Kimenet:

Bár a GUID-értékek használata szigorú egyediséget biztosíthat, a hibakeresés vagy bizonyos értékek kiválasztása nehézkes lehet.

Következtetés

Ebben az útmutatóban megismerkedett az SQL Server egyedi azonosító típusával. Azt is megtanulta, hogyan hozhat létre GUID értékeket a NEWID() és NEWSEQUENTIALID() függvényekkel.