uniqueidentifier (Transact-SQL)
Область применения: SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure конечной точке аналитики платформы Аналитики Azure Synapse Analytics (PDW) в Microsoft Fabric Хранилище в базе данных Microsoft Fabric SQL в Microsoft Fabric
16-байтовый идентификатор GUID.
Замечания
Столбец или локальную переменную типа uniqueidentifier можно инициализировать следующими способами:
- с помощью функции NEWID или NEWSEQUENTIALID;
- путем преобразования из строковой константы в виде 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
:
- PolyBase
- Средство загрузки dwloader для Parallel Data Warehouse
Примеры
В следующем примере значение 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