SQL Server GUID

Sql Server Guid



Sa post na ito, matututunan natin kung paano gamitin ang uri ng uniqueidentifier sa SQL Server. Gagamitin din namin ang mga function na NEWID() at NEWSEQUENTIALID() upang makabuo ng mga halaga ng GUID.

Uri ng Uniqueidentifier ng SQL Server

Ito ay isang 16-byte na halaga ng GUID na ginagamit sa isang column o isang lokal na variable. Maaari kang lumikha ng value ng uri ng uniqueidentifier gamit ang mga function na NEWID() at NEWSEQUENTIALID().

Maaari ka ring bumuo ng GUID value sa pamamagitan ng pag-convert ng string value sa format na xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx kung saan ang x ay isang hexadecimal digit sa hanay na 0 – 9.







Dahil sa 'randomness' ng isang halaga ng GUID, ginagarantiyahan na ang isang halaga ng GUID ay maaaring maging natatangi sa isang database o kahit na mga server. Ito ay gumagawa ng isang mahusay na uri ng data para sa natatanging pagtukoy ng isang ibinigay na halaga.



SQL Server NEWID() Function

Ang NEWID() function ay nagbibigay-daan sa amin na makabuo ng bagong natatanging halaga ng uri ng uniqueidentifier. Ang syntax ay tulad ng ipinapakita:



BAGUHIN ( )

Halimbawa:





ipahayag ang @gid uniqueidentifier;
set @gid = CHANGE();
piliin ang @gid bilang gid;

Ang mga pahayag sa itaas ay dapat magbalik ng halaga ng GUID bilang:

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

SQL Server NEWSEQUENTIALID() Function

Binibigyang-daan ka ng function na ito na bumuo ng mga natatanging halaga ng GUID nang sunud-sunod. Gumagana ito sa pamamagitan ng pagbuo ng halaga ng GUID na mas malaki kaysa sa naunang nabuong GUID.



Ginagawa nitong kapaki-pakinabang para sa paggamit bilang isang row identifier dahil bumubuo ito ng mga halaga nang sunud-sunod sa halip na manu-manong pagtukoy sa susunod na halaga ng GUID gamit ang NEWID() function.

Ang function syntax ay tulad ng ipinapakita:

NEWSEQUENTIALID ( )

Paggamit ng SQL Server GUID bilang Row Identifier

Ipinapakita ng sumusunod na halimbawa kung paano gamitin ang function na newsequentialid() bilang isang row identifier para sa isang partikular na column.

lumikha ng mga entry sa talahanayan (
id uniqueidentifier hindi null default newsequentialid() pangunahing key,
server_name varchar(50),
server_address varchar(255) hindi null,
compression_method varchar(100) default na 'wala',
size_on_disk float hindi null,
size_compressed float,
total_records int hindi null,
petsa ng init_date
);
ipasok
sa
ENTRIES(server_name,
address ng server,
compression_method,
size_on_disk,
size_compressed,
kabuuang_tala,
init_date)
mga halaga
('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');

Sa halimbawa sa itaas, itinakda namin ang column ng ID bilang uri ng uniqueidentifier at ang default na value bilang value na nabuo ng function na newsequentialid().

Ang resultang talahanayan ay tulad ng ipinapakita:

piliin ang * mula sa mga entry;

Output:

Bagama't ang paggamit ng mga halaga ng GUID ay maaaring magbigay ng mahigpit na pagiging natatangi, maaari itong maging mahirap kapag nagde-debug o pumipili ng mga partikular na halaga.

Konklusyon

Sa gabay na ito, natutunan mo ang tungkol sa uri ng uniqueidentifier sa SQL Server. Natutunan mo rin kung paano bumuo ng mga halaga ng GUID gamit ang mga function na NEWID() at NEWSEQUENTIALID().