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

APLICA-SE A: simSQL Server simBanco de Dados SQL do Azure simAzure Synapse Analytics (SQL DW) simParallel Data Warehouse APPLIES TO: yesSQL Server yesAzure SQL Database yesAzure Synapse Analytics (SQL DW) yesParallel Data Warehouse

É um GUID de 16 bytes.Is a 16-byte GUID.

RemarksRemarks

Uma coluna ou variável local de tipo de dados uniqueidentifier podem ser inicializadas com um valor das seguintes maneiras:A column or local variable of uniqueidentifier data type can be initialized to a value in the following ways:

  • Usando as funções NEWID ou NEWSEQUENTIALID.By using the NEWID or NEWSEQUENTIALID functions.
  • 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.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. Por exemplo, 6F9619FF-8B86-D011-B42D-00C04FC964FF é um valor uniqueidentifier válido.For example, 6F9619FF-8B86-D011-B42D-00C04FC964FF is a valid uniqueidentifier value.

Operadores de comparação podem ser usados com valores de uniqueidentifier.Comparison operators can be used with uniqueidentifier values. Entretanto, a ordenação não é implementada comparando os padrões de bit dos dois valores.However, ordering is not implemented by comparing the bit patterns of the two values. 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).The only operations that can be performed against a uniqueidentifier value are comparisons (=, <>, <, >, <=, >=) and checking for NULL (IS NULL and IS NOT NULL). Nenhum outro operador aritmético pode ser usado.No other arithmetic operators can be used. Todas as restrições de coluna e propriedades, exceto IDENTITY, podem ser usadas no tipo de dados uniqueidentifier.All column constraints and properties, except IDENTITY, can be used on the uniqueidentifier data type.

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.Merge replication and transactional replication with updating subscriptions use uniqueidentifier columns to guarantee that rows are uniquely identified across multiple copies of the table.

Convertendo dados uniqueidentifierConverting uniqueidentifier Data

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.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. 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.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. Consulte a seção Exemplos.See the Examples section.

Limitações e restriçõesLimitations and restrictions

Essas ferramentas e recursos não são compatíveis com o tipo de dados uniqueidentifier:These tools and features do not support the uniqueidentifier data type:

ExemplosExamples

O exemplo a seguir converte um valor uniqueidentifier em um tipo de dados char.The following example converts a uniqueidentifier value to a char data type.

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.The following example demonstrates the truncation of data when the value is too long for the data type being converted to. Como o tipo uniqueidentifier é limitado a 36 caracteres, os caracteres que excedem esse comprimento ficam truncados.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;  

Aqui está o conjunto de resultados.Here is the result set.

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

Confira tambémSee also

ALTER TABLE (Transact-SQL)ALTER TABLE (Transact-SQL)
CAST e CONVERT (Transact-SQL)CAST and CONVERT (Transact-SQL)
CREATE TABLE (Transact-SQL)CREATE TABLE (Transact-SQL)
Tipos de dados (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