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

Aplica-se a: simSQL Server (todas as versões compatíveis) SimInstância Gerenciada do Azure SQL

É usada somente em uma instrução SELECT com uma cláusula INTO table para inserir uma coluna de identidade em uma nova tabela. Embora similar, a função IDENTITY não é a propriedade IDENTITY que é usada com CREATE TABLE e ALTER TABLE.

Observação

Para criar um número incrementado automaticamente, que possa ser usado em várias tabelas ou ser chamado de aplicativos, sem referenciar tabelas, consulte Números de Sequência.

Ícone de link do tópico Convenções da sintaxe Transact-SQL

Sintaxe

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

Observação

Para ver a sintaxe do Transact-SQL para o SQL Server 2014 e versões anteriores, confira a Documentação das versões anteriores.

Argumentos

data_type
É o tipo de dados da coluna de identidade. Os tipos de dados válidos para uma coluna de identidade são tipos de dados da categoria de tipo de dados inteiro, exceto para os tipos de dados bit ou decimal.

seed
É o valor inteiro que será atribuído à primeira linha da tabela. A cada linha seguinte é atribuído o próximo valor de identidade, que é igual ao ultimo valor IDENTITY mais o valor de increment. Se seed nem increment for especificado, ambos usarão 1 como padrão.

increment
É o valor inteiro a ser adicionado ao valor seed para linhas sucessivas na tabela.

column_name
É o nome da coluna que 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, um nome para a coluna deve ser especificado na lista de seleção de uma destas 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;  

Exemplos

O exemplo a seguir insere todas as linhas da tabela Contact do banco de dados AdventureWorks2012em uma nova tabela chamada NewContact. A função IDENTITY é usada para iniciar números de identificação em 100, em vez de 1, na tabela NewContact.

USE AdventureWorks2012;  
GO  
IF OBJECT_ID (N'Person.NewContact', N'U') IS NOT NULL  
    DROP TABLE Person.NewContact;  
GO  
ALTER DATABASE AdventureWorks2012 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 AdventureWorks2012 SET RECOVERY FULL;  
GO  
SELECT ContactNum, First, Last FROM Person.NewContact;  
GO  

Consulte Também

CREATE TABLE (Transact-SQL)
@@IDENTITY (Transact-SQL)
IDENTITY (Propriedade) (Transact-SQL)
SELECT @local_variable (Transact-SQL)
DBCC CHECKIDENT (Transact-SQL)
sys.identity_columns (Transact-SQL)