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

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

Ícone de vínculo de tópicoConvenções de sintaxe Transact-SQL

Sintaxe

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

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 o tipo de dados bit ou decimal.

  • seed
    É o valor inteiro que será atribuído à primeira linha da tabela. A cada linha subsequente é atribuído o valor de identidade seguinte, que é igual ao ultimo valor IDENTITY mais o valor increment. Se nem seed nem increment for especificado, ambos assumirã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 Person do banco de dados AdventureWorks2008R2 em 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 AdventureWorks2008R2;
GO
IF OBJECT_ID (N'Person.NewContact', N'U') IS NOT NULL
    DROP TABLE Person.NewContact;
GO
ALTER DATABASE AdventureWorks2008R2 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 AdventureWorks2008R2 SET RECOVERY FULL;
GO
SELECT ContactNum, First, Last FROM Person.NewContact;
GO