uniqueidentifier (Transact-SQL)
16 バイトの GUID です。
説明
uniqueidentifier 型の列またはローカル変数は、次の方法で初期化できます。
NEWID 関数を使用する。
xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx の形式の文字列定数を変換する。各 x は 0 ~ 9 または a ~ f の 16 進数です。たとえば、6F9619FF-8B86-D011-B42D-00C04FC964FF は有効な uniqueidentifier 値です。
uniqueidentifier 型の値には比較演算子が使用できます。ただし、2 つの値のビット パターンを比較することによる順序付けは行われません。uniqueidentifier 型の値に対して行うことができる操作は、比較 (=、<>、<、>、<=、>=) および NULL であるかどうかのチェック (IS NULL と IS NOT NULL) だけです。他の算術演算子は使用できません。uniqueidentifier 型では、IDENTITY 以外のすべての列制約とプロパティを使用できます。
更新サブスクリプションでのマージ レプリケーションとトランザクション レプリケーションでは、テーブルの複数のコピーの間で列を確実に一意に識別するため、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)
関連項目