uniqueidentifier (Transact-SQL)
這是 16 位元組的 GUID。
適用於:SQL Server (SQL Server 2008 透過目前版本)、Windows Azure SQL 資料庫 (初始版本,透過目前版本)。 |
備註
uniqueidentifier 資料類型的資料行或本機變數可以利用下列方法,初始化為一個值:
使用 NEWID 函數。
從 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 值轉換成 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)
請參閱
參考
DECLARE @local\_variable (Transact-SQL)
SET @local\_variable (Transact-SQL)