GUID SQL Server

Guid Sql Server



Dalam posting ini, kita akan belajar bagaimana menggunakan tipe pengidentifikasi unik di SQL Server. Kami juga akan menggunakan fungsi NEWID() dan NEWSEQUENTIALID() untuk menghasilkan nilai GUID.

Jenis Pengidentifikasi Unik SQL Server

Ini adalah nilai GUID 16-byte yang digunakan dalam kolom atau variabel lokal. Anda dapat membuat nilai jenis pengidentifikasi unik menggunakan fungsi NEWID() dan NEWSEQUENTIALID() .

Anda juga dapat menghasilkan nilai GUID dengan mengonversi nilai string dalam format xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx di mana x adalah digit heksadesimal dalam kisaran 0 – 9.







Karena 'keacakan' nilai GUID, dijamin bahwa nilai GUID bisa unik di seluruh database atau bahkan server. Ini membuat tipe data yang sangat baik untuk mengidentifikasi nilai yang diberikan secara unik.



Fungsi SQL Server NEWID()

Fungsi NEWID() memungkinkan kita menghasilkan nilai unik baru dari tipe pengidentifikasi unik. Sintaksnya seperti yang ditunjukkan:



MENGUBAH ( )

Sebagai contoh:





nyatakan @gid uniqueidentifier;
atur @gid = UBAH();
pilih @gid sebagai gid;

Pernyataan di atas harus mengembalikan nilai GUID sebagai:

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

Fungsi SQL Server NEWSEQUENTIALID()

Fungsi ini memungkinkan Anda menghasilkan nilai GUID unik secara berurutan. Ini bekerja dengan menghasilkan nilai GUID yang lebih besar dari GUID yang dihasilkan sebelumnya.



Hal ini berguna untuk digunakan sebagai pengidentifikasi baris karena menghasilkan nilai secara berurutan daripada menentukan nilai GUID berikutnya secara manual menggunakan fungsi NEWID() .

Sintaks fungsi adalah seperti yang ditunjukkan:

ID SEKUENSIAL ( )

Menggunakan SQL Server GUID sebagai Pengidentifikasi Baris

Contoh berikut menunjukkan cara menggunakan fungsi newsequentialid() sebagai pengidentifikasi baris untuk kolom tertentu.

buat entri tabel (
id uniqueidentifier bukan null default newsequentialid() primary key,
nama_server varchar(50),
server_address varchar(255) bukan nol,
compression_method varchar(100) default 'tidak ada',
size_on_disk mengapung bukan nol,
float size_compressed,
total_records int bukan nol,
tanggal_init
);
memasukkan
ke dalam
ENTRI(nama_server,
alamat server,
metode_kompresi,
size_on_disk,
size_compressed,
catatan_total,
init_date)
nilai-nilai
('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');

Dalam contoh di atas, kami menyetel kolom ID sebagai tipe pengidentifikasi unik dan nilai default sebagai nilai yang dihasilkan oleh fungsi newsequentialid().

Tabel yang dihasilkan adalah seperti yang ditunjukkan:

pilih * dari entri;

Keluaran:

Meskipun menggunakan nilai GUID dapat memberikan keunikan yang ketat, akan sulit saat melakukan debug atau memilih nilai tertentu.

Kesimpulan

Dalam panduan ini, Anda mempelajari tentang tipe pengidentifikasi unik di SQL Server. Anda juga mempelajari cara membuat nilai GUID menggunakan fungsi NEWID() dan NEWSEQUENTIALID() .