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

Aplica-se a:SQL ServerBase de Dados SQL do AzureAzure SQL Managed InstanceAzure Synapse AnalyticsArmazém no Microsoft FabricBase de dados SQL no Microsoft Fabric

Use IDENTITY apenas numa 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 usas com CREATE TABLE e ALTER TABLE.

Observação

Para criar um número que se incremente automaticamente e que possa usar em múltiplas tabelas ou chamar a partir de aplicações sem consultar nenhuma tabela, consulte Números de Sequência.

Transact-SQL convenções de sintaxe

Sintaxe

Sintaxe para SQL Server, Base de Dados SQL do Azure, Azure SQL Managed Instance, SQL Database in 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 dados da coluna de identidade. Os tipos de dados válidos para uma coluna identidade são quaisquer tipos de dados na categoria de tipos de dados inteiros , exceto o tipo de dado bit ou o tipo de dado decimal .

sementes

O valor inteiro a atribuir à primeira linha da tabela. Cada linha subsequente recebe o valor de identidade seguinte, que é o último IDENTITY valor mais o valor de incremento . Se não especificares seed ou incremento, ambos ficam por padrão em 1.

incremento

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

column_name

O nome da coluna a inserir na nova tabela.

Tipos de devolução

Retorna o mesmo que data_type.

Observações

Como esta função cria uma coluna numa tabela, deve especificar um nome para a coluna na lista de seleção de uma das seguintes formas:

--(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;  

Apoio em Microsoft Fabric Data Warehouse

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

Exemplos

O exemplo seguinte insere todas as linhas da Contact tabela na base de dados AdventureWorks2025 numa 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