IDENTITY (Função) (Transact-SQL)

Aplica-se a:SQL ServerBanco de Dados SQL do AzureInstância Gerenciada de SQL do AzureAzure Synapse AnalyticsWarehouse no Microsoft FabricBanco de dados SQL no Microsoft Fabric

Use IDENTITY apenas em uma SELECT instrução com uma INTO table cláusula para adicionar uma coluna de identidade a uma nova tabela. Embora semelhantes, a IDENTITY função não é a mesma que a IDENTITY propriedade que você usa com CREATE TABLE e ALTER TABLE.

Observação

Para criar um número que incremente automaticamente e que você possa usar em múltiplas tabelas ou chamar de aplicativos sem consultar nenhuma tabela, veja Números de Sequência.

Convenções de sintaxe de Transact-SQL

Sintaxe

Sintaxe para SQL Server, Banco de Dados SQL do Azure, Instância Gerenciada de SQL do Azure, SQL Database em Fabric:

IDENTITY ( data_type [ , seed , increment ] ) AS column_name  

Sintaxe para o Fabric Data Warehouse:

IDENTITY ( data_type ) AS column_name  

Argumentos

data_type

O tipo de dado da coluna de identidade. Tipos de dados válidos para uma coluna identidade são quaisquer tipos de dados na categoria de tipo inteiro , exceto o tipo de dado bit ou o tipo de dado decimal .

semente

O valor inteiro a ser atribuído à primeira linha da tabela. Cada linha subsequente recebe o próximo valor de identidade, que é o último IDENTITY valor mais o valor de incremento . Se você não especificar seed ou incremento, ambos padrão são 1.

incremento

O valor inteiro a ser somado ao valor semente para linhas sucessivas na tabela.

column_name

O nome da coluna a ser inserida na nova tabela.

Tipos de retorno

Retorna o mesmo que data_type.

Comentários

Como essa função cria uma coluna em uma tabela, você deve especificar um nome para a coluna na lista select de uma das seguintes maneiras:

--(1)  
SELECT IDENTITY(int, 1,1) AS ID_Num  
INTO NewTable  
FROM OldTable;  

--(2)  
SELECT ID_Num = IDENTITY(int, 1, 1)  
INTO NewTable  
FROM OldTable;  

Suporte em Microsoft Fabric Data Warehouse

Em Fabric Data Warehouse, você não pode especificar seed valores de or increment porque o sistema gerencia automaticamente esses valores para fornecer inteiros únicos. Para uma definição de coluna em uma CREATE TABLE instrução, você só precisa usar BIGINT IDENTITY. Para mais informações, vejaCREATE TABLE (Transact-SQL) IDENTITY (Propriedade) e IDENTITY em Fabric Data Warehouse.

Exemplos

O exemplo a seguir insere todas as linhas da Contact tabela no banco de dados AdventureWorks2025 em uma nova tabela chamada NewContact. A IDENTITY função define os números de identificação para começarem em 100 em vez de 1 na NewContact tabela.

USE AdventureWorks2022;  
GO  
IF OBJECT_ID (N'Person.NewContact', N'U') IS NOT NULL  
    DROP TABLE Person.NewContact;  
GO  
ALTER DATABASE AdventureWorks2022 SET RECOVERY BULK_LOGGED;  
GO  
SELECT  IDENTITY(smallint, 100, 1) AS ContactNum,  
        FirstName AS First,  
        LastName AS Last  
INTO Person.NewContact  
FROM Person.Person;  
GO  
ALTER DATABASE AdventureWorks2022 SET RECOVERY FULL;  
GO  
SELECT ContactNum, First, Last FROM Person.NewContact;  
GO