IDENTITY (funzione) (Transact-SQL)
Si applica a: SQL Server Istanza gestita di SQL di Azure
Viene usata 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 usare in più tabelle o da chiamare dalle applicazioni senza fare riferimento ad alcuna tabella, vedere Numeri di sequenza.
Convenzioni relative alla 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à usato 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 Contact
tabella da AdventureWorks2022database 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 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
Vedi anche
CREATE TABLE (Transact-SQL)
@@IDENTITY (Transact-SQL)
IDENTITY (proprietà) (Transact-SQL)
SELECT @local_variable (Transact-SQL)
DBCC CHECKIDENT (Transact-SQL)
sys.identity_columns (Transact-SQL)