uniqueidentifier (Transact-SQL)

Aplica-se a: simSQL Server (todas as versões compatíveis) SimBanco de Dados SQL do Azure SimInstância Gerenciada do Azure SQL simAzure Synapse Analytics simParallel Data Warehouse

É um GUID de 16 bytes.

Comentários

Uma coluna ou variável local de tipo de dados uniqueidentifier podem ser inicializadas com um valor das seguintes maneiras:

  • Usando as funções NEWID ou NEWSEQUENTIALID.
  • Ao converter de uma constante de cadeia de caracteres no formato xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx, em que cada x é um dígito hexadecimal no intervalo 0–9 ou a–f. Por exemplo, 6F9619FF-8B86-D011-B42D-00C04FC964FF é um valor uniqueidentifier válido.

Operadores de comparação podem ser usados com valores de uniqueidentifier. Entretanto, a ordenação não é implementada comparando os padrões de bit dos dois valores. As únicas operações que podem ser executadas com um valor uniqueidentifier são comparações (=, <>, <, >, <=, >=) e verificações para NULL (IS NULL e IS NOT NULL). Nenhum outro operador aritmético pode ser usado. Todas as restrições de coluna e propriedades, exceto IDENTITY, podem ser usadas no tipo de dados uniqueidentifier.

A replicação de mesclagem e a replicação transacional com assinaturas de atualização usam colunas uniqueidentifier para garantir que as linhas sejam identificadas com exclusividade em várias cópias da tabela.

Convertendo dados uniqueidentifier

O tipo uniqueidentifier é considerado um tipo de caractere para fins de conversão de uma expressão de caractere e, portanto, está sujeito às regras de truncamento para conversão em um tipo de caractere. Ou seja, quando expressões de caractere são convertidas em um tipo de dados de caractere de um tamanho diferente, os valores muito longos para o novo tipo de dados são truncados. Consulte a seção Exemplos.

Limitações e restrições

Essas ferramentas e recursos não são compatíveis com o tipo de dados uniqueidentifier:

Exemplos

O exemplo a seguir converte um valor uniqueidentifier em um tipo de dados char.

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

O exemplo a seguir demonstra o truncamento de dados quando o valor é muito longo para o tipo de dados da conversão. Como o tipo uniqueidentifier é limitado a 36 caracteres, os caracteres que excedem esse comprimento ficam truncados.

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

Este é o conjunto de resultados.

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

Confira também

ALTER TABLE (Transact-SQL)
CAST e CONVERT (Transact-SQL)
CREATE TABLE (Transact-SQL)
Tipos de dados (Transact-SQL)
DECLARE @local_variable (Transact-SQL)
NEWID (Transact-SQL)
NEWSEQUENTIALID (Transact-SQL)
SET @local_variable (Transact-SQL)
Updatable Subscriptions for Transactional Replication