GUID strežnika SQL

Guid Streznika Sql



V tej objavi se bomo naučili uporabljati vrsto uniqueidentifier v strežniku SQL Server. Za ustvarjanje vrednosti GUID bomo uporabili tudi funkciji NEWID() in NEWSEQUENTIALID().

Vrsta enoličnega identifikatorja strežnika SQL

To je 16-bajtna vrednost GUID, ki se uporablja v stolpcu ali lokalni spremenljivki. Ustvarite lahko vrednost tipa edinstvenega identifikatorja s funkcijama NEWID() in NEWSEQUENTIALID().

Vrednost GUID lahko ustvarite tudi s pretvorbo vrednosti niza v obliki xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx, kjer je x šestnajstiška številka v območju od 0 do 9.







Zaradi 'naključnosti' vrednosti GUID je zagotovljeno, da je lahko vrednost GUID edinstvena v zbirki podatkov ali celo strežnikih. To je odličen podatkovni tip za enolično identifikacijo dane vrednosti.



Funkcija SQL Server NEWID().

Funkcija NEWID() nam omogoča ustvarjanje nove unikatne vrednosti tipa uniqueidentifier. Sintaksa je prikazana:



SPREMEMBA ( )

Na primer:





deklariraj @gid uniqueidentifier;
set @gid = CHANGE();
izberite @gid kot gid;

Zgornji stavki morajo vrniti vrednost GUID kot:

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

Funkcija SQL Server NEWSEQUENTIALID().

Ta funkcija vam omogoča zaporedno ustvarjanje edinstvenih vrednosti GUID. Deluje tako, da ustvari vrednost GUID, ki je večja od predhodno ustvarjenega GUID.



Zaradi tega je uporaben za uporabo kot identifikator vrstice, saj ustvarja vrednosti zaporedno, namesto da ročno določa naslednjo vrednost GUID s funkcijo NEWID().

Sintaksa funkcije je prikazana:

NEWSEQUENTIALID ( )

Uporaba GUID-ja strežnika SQL kot identifikatorja vrstice

Naslednji primer prikazuje, kako uporabiti funkcijo newsequentialid() kot identifikator vrstice za dani stolpec.

ustvari vnose v tabeli (
id uniqueidentifier not null privzeti newsequentialid() primarni ključ,
ime_strežnika varchar(50),
server_address varchar(255) ni nič,
compression_method varchar(100) privzeto 'brez',
size_on_disk float ni ničelna,
size_compressed float,
total_records int ni nič,
init_date datum
);
vstavi
v
VNOSI(ime_strežnika,
naslov strežnika,
metoda_stiskanja,
velikost_na_disku,
velikost_stisnjena,
total_records,
začetni_datum)
vrednote
('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');

V zgornjem primeru smo stolpec ID nastavili kot vrsto edinstvenega identifikatorja in privzeto vrednost kot vrednost, ki jo ustvari funkcija newsequentialid().

Dobljena tabela je prikazana:

izberite * med vnosi;

Izhod:

Čeprav lahko uporaba vrednosti GUID zagotovi strogo edinstvenost, je lahko težavno pri odpravljanju napak ali izbiranju določenih vrednosti.

Zaključek

V tem priročniku ste izvedeli več o vrsti uniqueidentifier v strežniku SQL Server. Naučili ste se tudi, kako ustvariti vrednosti GUID s funkcijama NEWID() in NEWSEQUENTIALID().