SQL Server GUID

Sql Server Guid

Šajā rakstā mēs uzzināsim, kā izmantot unikālā identifikatora veidu SQL Server. Mēs izmantosim arī funkcijas NEWID() un NEWSEQUENTIALID(), lai ģenerētu GUID vērtības.

SQL servera unikālā identifikatora veids

Šī ir 16 baitu GUID vērtība, ko izmanto kolonnā vai lokālajā mainīgajā. Unikālā identifikatora tipa vērtību var izveidot, izmantojot funkcijas NEWID() un NEWSEQUENTIALID().

Varat arī ģenerēt GUID vērtību, konvertējot virknes vērtību formātā xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx, kur x ir heksadecimālais cipars diapazonā no 0 līdz 9.







GUID vērtības nejaušības dēļ tiek garantēts, ka GUID vērtība var būt unikāla datu bāzē vai pat serveros. Tas ir lielisks datu tips, lai unikāli identificētu doto vērtību.



SQL Server NEWID() funkcija

Funkcija NEWID() ļauj mums ģenerēt jaunu unikālu unikālā identifikatora tipa vērtību. Sintakse ir šāda:



MAINĪT ( )

Piemēram:





paziņot @gid unikālo identifikatoru;
iestatīt @gid = CHANGE();
atlasiet @gid kā gid;

Iepriekš minētajiem paziņojumiem ir jāatgriež GUID vērtība šādi:

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

SQL Server NEWSEQUENTIALID() funkcija

Šī funkcija ļauj secīgi ģenerēt unikālas GUID vērtības. Tas darbojas, ģenerējot GUID vērtību, kas ir lielāka par iepriekš ģenerēto GUID.



Tas padara to noderīgu lietošanai kā rindas identifikatoru, jo tas ģenerē vērtības secīgi, nevis manuāli nosaka nākamo GUID vērtību, izmantojot funkciju NEWID().

Funkcijas sintakse ir šāda:

NEWSEQUENTIALID ( )

SQL Server GUID izmantošana kā rindas identifikators

Nākamajā piemērā parādīts, kā izmantot funkciju newssequentialid() kā rindas identifikatoru noteiktai kolonnai.

izveidot tabulas ierakstus (
id unikālais identifikators nav nulle noklusējuma newsequentialid() primārā atslēga,
servera_nosaukums varchar(50),
servera_adrese varchar(255) nav null,
compression_method varchar(100) noklusējuma 'none',
size_on_sk float nav nulles,
size_compressed float,
total_records int nevis null,
init_date datums
);
ievietot
iekšā
IERAKSTI(servera_nosaukums,
servera_adrese,
kompresijas_metode,
izmērs_diskā,
size_compressed,
total_records,
sākuma_datums)
vērtības
('MySQL','localhost:3306','lz77',90.66,40.04,560000,'2022-01-02'),
('Rēdis','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');

Iepriekš minētajā piemērā mēs iestatījām ID kolonnu kā unikālā identifikatora veidu un noklusējuma vērtību kā vērtību, ko ģenerē funkcija newssequentialid().

Rezultātā iegūtā tabula ir šāda:

izvēlieties * no ierakstiem;

Izvade:

Lai gan GUID vērtību izmantošana var nodrošināt stingru unikalitāti, tas var būt sarežģīti, veicot atkļūdošanu vai atlasot noteiktas vērtības.

Secinājums

Šajā rokasgrāmatā jūs uzzinājāt par unikālā identifikatora veidu programmā SQL Server. Jūs arī uzzinājāt, kā ģenerēt GUID vērtības, izmantojot funkcijas NEWID() un NEWSEQUENTIALID().