SQL Server GUID

Sql Server Guid



Tässä viestissä opimme käyttämään yksilöllistä tunnistetyyppiä SQL Serverissä. Käytämme myös NEWID()- ja NEWSEQUENTIALID()-funktioita GUID-arvojen luomiseen.

SQL Serverin yksilöivä tunnistetyyppi

Tämä on 16-tavuinen GUID-arvo, jota käytetään sarakkeessa tai paikallisessa muuttujassa. Voit luoda yksilöllisen tunnisteen tyypin arvon käyttämällä NEWID()- ja NEWSEQUENTIALID()-funktioita.

Voit myös luoda GUID-arvon muuntamalla merkkijonoarvon muotoon xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx, jossa x on heksadesimaaliluku välillä 0–9.







GUID-arvon 'satunnaisuuden' vuoksi on taattu, että GUID-arvo voi olla ainutlaatuinen tietokannassa tai jopa palvelimissa. Tämä on erinomainen tietotyyppi tietyn arvon yksilöimiseen.



SQL Server NEWID() -funktio

NEWID()-funktion avulla voimme luoda uuden yksilöllisen arvon yksilölliselle tunnistetyypille. Syntaksi on seuraavanlainen:



MUUTA ( )

Esimerkiksi:





ilmoittaa @gid yksilöllinen tunniste;
set @gid = MUUTA();
valitse @gid nimellä gid;

Yllä olevien lauseiden pitäisi palauttaa GUID-arvo seuraavasti:

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

SQL Server NEWSEQUENTIALID() -funktio

Tämän toiminnon avulla voit luoda yksilöllisiä GUID-arvoja peräkkäin. Se toimii luomalla GUID-arvon, joka on suurempi kuin aiemmin luotu GUID.



Tämä tekee siitä hyödyllisen käytettäväksi rivitunnisteena, koska se luo arvot peräkkäin sen sijaan, että se määrittäisi seuraavan GUID-arvon manuaalisesti NEWID()-funktiolla.

Toiminnon syntaksi on seuraavanlainen:

NEWSEQUENTIALID ( )

SQL Server GUID:n käyttäminen rivitunnisteena

Seuraava esimerkki näyttää, kuinka newsequentialid()-funktiota käytetään tietyn sarakkeen rivitunnisteena.

luo taulukkomerkintöjä (
id yksilöllinen tunniste ei null oletus newsequentialid() ensisijainen avain,
palvelimen_nimi varchar(50),
palvelimen_osoite varchar(255) ei ole tyhjä,
compression_method varchar(100) oletusarvo 'none',
size_on_disk float not null,
size_compressed float,
total_records int ei null,
aloituspäivämäärä
);
lisää
sisään
ENTRIES(palvelimen_nimi,
palvelimen osoite,
compression_method,
size_on_disk,
size_compressed,
total_records,
aloituspäivämäärä)
arvot
('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');

Yllä olevassa esimerkissä asetamme ID-sarakkeen yksilöllisen tunnisteen tyypiksi ja oletusarvon newsequentialid()-funktion luomaksi arvoksi.

Tuloksena oleva taulukko on seuraavanlainen:

valitse * merkinnöistä;

Lähtö:

Vaikka GUID-arvojen käyttö voi tarjota tiukan yksilöllisyyden, se voi olla vaikeaa virheenkorjauksessa tai tiettyjen arvojen valitsemisessa.

Johtopäätös

Tässä oppaassa opit SQL Serverin yksilöllisen tunnisteen tyypistä. Opit myös luomaan GUID-arvoja NEWID()- ja NEWSEQUENTIALID()-funktioiden avulla.