uniqueidentifier (Transact-SQL)

16-байтовый идентификатор GUID.

Применимо для следующих объектов: SQL Server (SQL Server 2008 по текущую версию), База данных SQL Windows Azure (С первоначального выпуска по текущий выпуск).

Замечания

Столбец или локальную переменную типа 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). Никакие другие арифметические операторы не поддерживаются. К типу данных 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)

См. также

Справочник

ALTER TABLE (Transact-SQL)

Функции CAST и CONVERT (Transact-SQL)

CREATE TABLE (SQL Server)

Типы данных (Transact-SQL)

DECLARE @local\_variable (Transact-SQL)

NEWID (Transact-SQL)

SET @local\_variable (Transact-SQL)

Основные понятия

Обновляемые подписки для репликации транзакций