適用於:SQL Server
Azure SQL 資料庫
Azure SQL 受控執行個體
Azure Synapse Analytics
分析平台系統(PDW)
Microsoft Fabric 中的 SQL 分析端點
Microsoft Fabric 中的倉儲
Microsoft Fabric 中的 SQL 資料庫
這是 16 位元組的 GUID。
Remarks
uniqueidentifier 資料類型的資料行或本機變數可以利用下列方法,初始化為一個值:
- 使用 NEWID 或 NEWSEQUENTIALID 函式。
- 從 xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx 格式的字串常數轉換,其中每一個 x 是範圍 0-9 或 a-f 的十六進位數字。 例如,6F9619FF-8B86-D011-B42D-00C04FC964FF 是有效的 uniqueidentifier 值。
比較運算子可以搭配使用 uniqueidentifier 值。 不過排序並不是比較兩值的位元模式加以實作的。 您可以針對 uniqueidentifier 值執行的唯一作業是比較 (=、<><><=、>=) 和檢查其是否為 NULL (IS NULL 和 IS NOT NULL)。 其他算術運算子一律不能使用。 除了 IDENTITY 之外,所有的資料行條件約束和屬性,都可以用於 uniqueidentifier 資料類型。
具有更新訂閱的合併式複寫和異動複寫,都使用 uniqueidentifier 資料行,以確保資料列可以在多份資料表唯一識別。
轉換 Uniqueidentifier 資料
uniqueidentifier 類型會基於轉換字元運算式的用途,而被視為字元類型;因此會受到轉換成字元類型之截斷規則的影響。 亦即,將字元運算式轉換成不同大小的字元資料類型時,對新資料類型而言太大的值會被截斷。 請參閱<範例>一節。
限制事項
這些工具和功能不支援 uniqueidentifier 資料類型:
- PolyBase
- 適用於平行處理資料倉儲的 dwloader 載入工具
Examples
下列範例會將 uniqueidentifier 值轉換成 char 資料類型。
DECLARE @myid uniqueidentifier = NEWID();
SELECT CONVERT(CHAR(255), @myid) AS 'char';
下列範例會示範當值對於要轉換的目標資料類型而言太大時,資料的截斷方式。 因為 uniqueidentifier 類型限制為 36 個字元,所以超過該長度的字元會被截斷。
DECLARE @ID NVARCHAR(max) = N'0E984725-C51C-4BF4-9960-E1C80E27ABA0wrong';
SELECT @ID, CONVERT(uniqueidentifier, @ID) AS TruncatedValue;
結果集如下所示。
String TruncatedValue
-------------------------------------------- ------------------------------------
0E984725-C51C-4BF4-9960-E1C80E27ABA0wrong 0E984725-C51C-4BF4-9960-E1C80E27ABA0
(1 row(s) affected)
另請參閱
ALTER TABLE (Transact-SQL)
CAST 和 CONVERT (Transact-SQL)
CREATE TABLE (Transact-SQL)
資料類型 (Transact-SQL)
DECLARE @local_variable (Transact-SQL)
NEWID (Transact-SQL)
新準星(Transact-SQL)
SET @local_variable (Transact-SQL)
事務複製的可更新訂閱