uniqueidentifier (Transact-SQL)

Berlaku untuk:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics AnalyticsPlatform System (PDW)Titik akhir analitik SQL di Microsoft FabricWarehouse di Microsoft Fabric

Adalah GUID 16 byte.

Keterangan

Kolom atau variabel lokal jenis data pengidentifikasi unik dapat diinisialisasi ke nilai dengan cara berikut:

  • Dengan menggunakan fungsi NEWID atau NEWSEQUENTIALID .
  • Dengan mengonversi dari konstanta string dalam bentuk xxxxxxxx-xxxx-xxxx-xxxx-xx, di mana setiap x adalah digit heksadesimal dalam rentang 0-9 atau a-f. Misalnya, 6F9619FF-8B86-D011-B42D-00C04FC964FF adalah nilai pengidentifikasi unik yang valid.

Operator perbandingan dapat digunakan dengan nilai pengidentifikasi unik. Namun, pengurutan tidak diterapkan dengan membandingkan pola bit dari dua nilai. Satu-satunya operasi yang dapat dilakukan terhadap nilai uniqueidentifier adalah perbandingan (=, <>, <, >, <=, >=) dan memeriksa NULL (IS NULL dan IS NOT NULL). Tidak ada operator aritmatika lain yang dapat digunakan. Semua batasan dan properti kolom, kecuali IDENTITY, dapat digunakan pada jenis data pengidentifikasi unik.

Gabungkan replikasi dan replikasi transaksional dengan memperbarui langganan menggunakan kolom pengidentifikasi unik untuk menjamin bahwa baris diidentifikasi secara unik di beberapa salinan tabel.

Mengonversi Data pengidentifikasi unik

Jenis pengidentifikasi unik dianggap sebagai jenis karakter untuk tujuan konversi dari ekspresi karakter, dan karenanya tunduk pada aturan pemotongan untuk mengonversi ke jenis karakter. Artinya, ketika ekspresi karakter dikonversi ke jenis data karakter dengan ukuran yang berbeda, nilai yang terlalu panjang untuk jenis data baru dipotong. Lihat bagian Contoh.

Pembatasan dan batasan

Alat dan fitur ini tidak mendukung uniqueidentifier jenis data:

  • PolyBase
  • alat pemuatan dwloader untuk Gudang Data Paralel

Contoh

Contoh berikut mengonversi uniqueidentifier nilai menjadi char jenis data.

DECLARE @myid uniqueidentifier = NEWID();  
SELECT CONVERT(CHAR(255), @myid) AS 'char';  

Contoh berikut menunjukkan pemotongan data ketika nilai terlalu panjang untuk jenis data yang dikonversi. Karena jenis uniqueidentifier dibatasi hingga 36 karakter, karakter yang melebihi panjang tersebut dipotong.

DECLARE @ID NVARCHAR(max) = N'0E984725-C51C-4BF4-9960-E1C80E27ABA0wrong';  
SELECT @ID, CONVERT(uniqueidentifier, @ID) AS TruncatedValue;  

Berikut adalah hasil yang ditetapkan.

String                                       TruncatedValue  
-------------------------------------------- ------------------------------------  
0E984725-C51C-4BF4-9960-E1C80E27ABA0wrong    0E984725-C51C-4BF4-9960-E1C80E27ABA0  
  
(1 row(s) affected)  

Baca juga

ALTER TABLE (Transact-SQL)
CAST dan CONVERT (Transact-SQL)
BUAT TABEL (Transact-SQL)
Tipe Data (Transact-SQL)
DECLARE @local_variable (Transact-SQL)
NEWID (Transact-SQL)
NEWSEQUENTIALID (Transact-SQL)
SET @local_variable (Transact-SQL)
Langganan yang Dapat Diperbarui untuk Replikasi Transaksional