IDENTITY (funzione) (Transact-SQL)

Viene utilizzata solo in istruzioni SELECT che includono una clausola INTO table per l'inserimento di una colonna Identity in una nuova tabella. Pur essendo simili, la funzione IDENTITY e la proprietà IDENTITY utilizzata con CREATE TABLE e ALTER TABLE non sono equivalenti.

Icona di collegamento a un argomentoConvenzioni della sintassi Transact-SQL

Sintassi

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

Argomenti

  • data_type
    Tipo di dati della colonna Identity. I tipi di dati validi per una colonna Identity sono tutti i tipi di dati della categoria integer, con l'eccezione di bit e decimal.

  • seed
    Valore integer da assegnare alla prima riga della tabella. A ogni riga successiva viene assegnato il valore Identity successivo, che corrisponde all'ultimo valore IDENTITY più il valore increment. Se vengono omessi sia seed che increment , verrà utilizzato il valore predefinito 1 per entrambi.

  • increment
    Valore integer da aggiungere al valore seed per le righe successive della tabella.

  • column_name
    Nome della colonna da inserire nella nuova tabella.

Tipi restituiti

Restituisce lo stesso tipo dell'argomento data_type*.*

Osservazioni

Poiché questa funzione crea una colonna in una tabella, nell'elenco di selezione è necessario specificare un nome per la colonna in uno dei modi seguenti:

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

Esempi

Nell'esempio seguente vengono inserite tutte le righe della tabella Contact del database AdventureWorks in una nuova tabella denominata NewContact. La funzione IDENTITY viene utilizzata per assegnare i numeri di identificazione nella tabella NewContact a partire da 100 anziché da 1.

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