uniqueidentifier (Transact-SQL)uniqueidentifier (Transact-SQL)

適用対象: yesSQL Server yesAzure SQL Database yesAzure Synapse Analytics (SQL DW) yesParallel Data Warehouse APPLIES TO: yesSQL Server yesAzure SQL Database yesAzure Synapse Analytics (SQL DW) yesParallel Data Warehouse

16 バイトの GUID です。Is a 16-byte GUID.

RemarksRemarks

列またはのローカル変数 uniqueidentifier データ型は、次の方法で値に初期化することができます。A column or local variable of uniqueidentifier data type can be initialized to a value in the following ways:

  • NEWID または NEWSEQUENTIALID 関数を使用する。By using the NEWID or NEWSEQUENTIALID functions.
  • xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx の形式の文字列定数を変換する。各 x は 0 ~ 9 または a ~ f の 16 進数です。By converting from a string constant in the form xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx, in which each x is a hexadecimal digit in the range 0-9 or a-f. たとえば、6F9619FF-8B86-D011-B42D-00C04FC964FF は有効な uniqueidentifier 値です。For example, 6F9619FF-8B86-D011-B42D-00C04FC964FF is a valid uniqueidentifier value.

比較演算子で使用できる uniqueidentifier 値。Comparison operators can be used with uniqueidentifier values. しかし、2 つの値のビット パターンを比較することによって、順序付けは実装されません。However, ordering is not implemented by comparing the bit patterns of the two values. uniqueidentifier 型の値に対して行うことができる操作は、比較 (=、<>、<、>、<=、>) および NULL であるかどうかのチェック (IS NULL と IS NOT NULL) だけです。The only operations that can be performed against a uniqueidentifier value are comparisons (=, <>, <, >, <=, >=) and checking for NULL (IS NULL and IS NOT NULL). 他の算術演算子は使用できません。No other arithmetic operators can be used. uniqueidentifier データ型では、IDENTITY 以外のすべての列制約とプロパティを使用できます。All column constraints and properties, except IDENTITY, can be used on the uniqueidentifier data type.

更新サブスクリプションでのマージ レプリケーションとトランザクション レプリケーションでは、テーブルの複数のコピーの間で列を確実に一意に識別するため、uniqueidentifier 列が使用されます。Merge replication and transactional replication with updating subscriptions use uniqueidentifier columns to guarantee that rows are uniquely identified across multiple copies of the table.

uniqueidentifier データを変換するConverting uniqueidentifier Data

uniqueidentifier 型は、文字式からの変換のための文字型と見なされるため、文字型に変換する場合は切り捨てルールが適用されます。The uniqueidentifier type is considered a character type for the purposes of conversion from a character expression, and therefore is subject to the truncation rules for converting to a character type. つまり、文字式を異なるサイズの文字型に変換する場合、値が新しいデータ型に長すぎる場合は、切り捨てられます。That is, when character expressions are converted to a character data type of a different size, values that are too long for the new data type are truncated. 「使用例」セクションを参照してください。See the Examples section.

制限事項と制約事項Limitations and restrictions

これらのツールと機能では、uniqueidentifier データ型はサポートされません。These tools and features do not support the uniqueidentifier data type:

使用例Examples

次の例では、uniqueidentifier 型の値を char 型の値に変換します。The following example converts a uniqueidentifier value to a char data type.

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

次の例は、変換後のデータ型に対して値が長すぎる場合のデータの切り捨てを示します。The following example demonstrates the truncation of data when the value is too long for the data type being converted to. uniqueidentifier 型は 36 文字に制限されているため、この長さを超える文字は切り捨てられます。Because the uniqueidentifier type is limited to 36 characters, the characters that exceed that length are truncated.

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

結果セットは次のようになります。Here is the result set.

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

参照See also

ALTER TABLE (Transact-SQL)ALTER TABLE (Transact-SQL)
CAST および CONVERT (Transact-SQL)CAST and CONVERT (Transact-SQL)
CREATE TABLE (Transact-SQL)CREATE TABLE (Transact-SQL)
データ型 (Transact-SQL)Data Types (Transact-SQL)
DECLARE @local_variable (Transact-SQL)DECLARE @local_variable (Transact-SQL)
NEWID (Transact-SQL)NEWID (Transact-SQL)
NEWSEQUENTIALID (Transact-SQL) NEWSEQUENTIALID (Transact-SQL)
SET @local_variable (Transact-SQL)SET @local_variable (Transact-SQL)
Updatable Subscriptions for Transactional ReplicationUpdatable Subscriptions for Transactional Replication