SQL Server GUID

Sql Server Guid



V tomto príspevku sa naučíme, ako používať typ uniqueidentifier v SQL Server. Na generovanie hodnôt GUID použijeme aj funkcie NEWID() a NEWSEQUENTIALID().

Typ jedinečného identifikátora servera SQL Server

Ide o 16-bajtovú hodnotu GUID používanú v stĺpci alebo lokálnej premennej. Hodnotu typu uniqueidentifier môžete vytvoriť pomocou funkcií NEWID() a NEWSEQUENTIALID().

Hodnotu GUID môžete vygenerovať aj prevodom hodnoty reťazca vo formáte xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx, kde x je hexadecimálna číslica v rozsahu 0 – 9.







Vďaka „náhodnosti“ hodnoty GUID je zaručené, že hodnota GUID môže byť jedinečná v rámci databázy alebo dokonca serverov. To je vynikajúci typ údajov na jedinečnú identifikáciu danej hodnoty.



Funkcia SQL Server NEWID().

Funkcia NEWID() nám umožňuje vygenerovať novú jedinečnú hodnotu typu uniqueidentifier. Syntax je uvedená:



ZMENIŤ ( )

Napríklad:





deklarovať jedinečný identifikátor @gid;
set @gid = ZMENA ();
vyberte @gid ako gid;

Vyššie uvedené príkazy by mali vrátiť hodnotu GUID ako:

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

Funkcia SQL Server NEWSEQUENTIALID().

Táto funkcia vám umožňuje generovať jedinečné hodnoty GUID postupne. Funguje tak, že generuje hodnotu GUID, ktorá je väčšia ako predtým vygenerovaný GUID.



Vďaka tomu je užitočný na použitie ako identifikátor riadka, pretože generuje hodnoty sekvenčne a nie manuálne určovanie ďalšej hodnoty GUID pomocou funkcie NEWID().

Syntax funkcie je znázornená:

NEWSEQUENTIALID ( )

Použitie SQL Server GUID ako identifikátor riadka

Nasledujúci príklad ukazuje, ako použiť funkciu newsequentialid() ako identifikátor riadka pre daný stĺpec.

vytvoriť záznamy v tabuľke (
id uniqueidentifier not null predvolený primárny kľúč newsequentialid(),
server_name varchar(50),
server_address varchar(255) nie je null,
kompresia_method varchar(100) predvolená hodnota 'žiadna',
size_on_disk float nie je null,
size_compressed float,
total_records int not null,
dátum_počiatku
);
vložiť
do
ENTRIES(názov_servera,
adresa servera,
kompresná_metóda,
veľkosť_na_disku,
size_compressed,
celkove_zaznamy,
init_date)
hodnoty
('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');

Vo vyššie uvedenom príklade sme nastavili stĺpec ID ako typ uniqueidentifier a predvolenú hodnotu ako hodnotu vygenerovanú funkciou newsequentialid().

Výsledná tabuľka je takáto:

vyberte * zo záznamov;

Výkon:

Hoci použitie hodnôt GUID môže poskytnúť prísnu jedinečnosť, môže to byť zložité pri ladení alebo výbere konkrétnych hodnôt.

Záver

V tejto príručke ste sa dozvedeli o type uniqueidentifier v SQL Server. Naučili ste sa tiež generovať hodnoty GUID pomocou funkcií NEWID() a NEWSEQUENTIALID().