SQL Server GUID

Sql Server Guid



V tomto příspěvku se naučíme, jak používat typ uniqueidentifier v SQL Server. Ke generování hodnot GUID použijeme také funkce NEWID() a NEWSEQUENTIALID().

Typ jedinečného identifikátoru serveru SQL Server

Toto je 16bajtová hodnota GUID použitá ve sloupci nebo místní proměnné. Hodnotu typu uniqueidentifier můžete vytvořit pomocí funkcí NEWID() a NEWSEQUENTIALID().

Hodnotu GUID můžete také vygenerovat převodem hodnoty řetězce ve formátu xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx, kde x je hexadecimální číslice v rozsahu 0 – 9.







Vzhledem k „náhodnosti“ hodnoty GUID je zaručeno, že hodnota GUID může být jedinečná v rámci databáze nebo dokonce serverů. To je vynikající datový typ pro jednoznačnou identifikaci dané hodnoty.



Funkce SQL Server NEWID().

Funkce NEWID() nám umožňuje vygenerovat novou jedinečnou hodnotu typu uniqueidentifier. Syntaxe je následující:



ZMĚNA ( )

Například:





deklarovat jedinečný identifikátor @gid;
set @gid = ZMĚNA();
vyberte @gid jako gid;

Výše uvedené příkazy by měly vrátit hodnotu GUID jako:

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

Funkce SQL Server NEWSEQUENTIALID().

Tato funkce umožňuje generovat jedinečné hodnoty GUID postupně. Funguje tak, že generuje hodnotu GUID, která je větší než dříve vygenerovaný GUID.



Díky tomu je užitečný pro použití jako identifikátor řádku, protože generuje hodnoty postupně, místo aby ručně určoval další hodnotu GUID pomocí funkce NEWID().

Syntaxe funkce je následující:

NEWSEQUENTIALID ( )

Použití SQL Server GUID jako identifikátor řádku

Následující příklad ukazuje, jak použít funkci newsequentialid() jako identifikátor řádku pro daný sloupec.

vytvořit záznamy v tabulce (
id uniqueidentifier not null výchozí primární klíč newsequentialid(),
server_name varchar(50),
server_address varchar(255) není null,
komprese_method varchar(100) výchozí 'žádný',
size_on_disk float není null,
size_compressed float,
total_records int není null,
datum init_date
);
vložit
do
VSTUPY(název_serveru,
adresa serveru,
kompresní_způsob,
velikost_na_disku,
size_compressed,
celkem_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');

Ve výše uvedeném příkladu jsme nastavili sloupec ID jako typ uniqueidentifier a výchozí hodnotu jako hodnotu generovanou funkcí newsequentialid().

Výsledná tabulka vypadá takto:

vyberte * ze záznamů;

Výstup:

Ačkoli použití hodnot GUID může poskytnout přísnou jedinečnost, může být obtížné při ladění nebo výběru konkrétních hodnot.

Závěr

V této příručce jste se dozvěděli o typu uniqueidentifier v SQL Server. Také jste se naučili, jak generovat hodnoty GUID pomocí funkcí NEWID() a NEWSEQUENTIALID().