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

ОБЛАСТЬ ПРИМЕНЕНИЯ: даSQL Server даБаза данных SQL Azure даAzure Synapse Analytics (хранилище данных SQL) даParallel 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).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. однако их упорядочивание реализовано без использования поразрядного сравнения.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.

Преобразование данных uniqueidentifierConverting 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