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.
Nota
Per creare un numero a incremento automatico da utilizzare in più tabelle o da chiamare dalle applicazioni senza fare riferimento ad alcuna tabella, vedere Numeri di sequenza.
Si applica a: SQL Server (da SQL Server 2008 a versione corrente). |
Convenzioni 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 intero 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 intero 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 AdventureWorks2012 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 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
Vedere anche
Riferimento
IDENTITY (proprietà) (Transact-SQL)
SELECT @local\_variable (Transact-SQL)