uniqueidentifier (Transact-SQL)
Applies to: SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW) Microsoft Fabric の SQL 分析エンドポイント Microsoft Fabric のウェアハウス
16 バイトの GUID です。
解説
列またはのローカル変数 uniqueidentifier データ型は、次の方法で値に初期化することができます。
- NEWID または NEWSEQUENTIALID 関数を使用する。
- 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
データ型はサポートされません。
- PolyBase
- Parallel Data Warehouse 用の dwloader 読み込みツール
例
次の例では、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)
NEWSEQUENTIALID (Transact-SQL)
SET @local_variable (Transact-SQL)
Updatable Subscriptions for Transactional Replication