SQL Server IDENTITY_INSERT consente di inserire valori espliciti nella colonna identità di una tabella.
L’istruzione IDENTITY_INSERT deve essere impostata su per inserire il valore esplicito per la colonna identity. Per impostazione predefinita IDENTITY_INSERT è DISATTIVATO.
SINTASSI
SET IDENTITY_INSERT schema_name . ] table_name { ON | OFF }
database_name
È il nome del database in cui esiste la tabella specificata.
schema_name
È il nome dello schema a cui appartiene la tabella.,
nome_tabella
È il nome di una tabella con una colonna identity.
Diamo un’occhiata a un esempio di SET IDENTITY_INSERT in SQL SERVER.
Il seguente esempio dimostra come IDENTITY_INSERT viene utilizzato per fornire esplicitamente il valore di identità per la colonna identity.
Creiamo una tabella-X che ha un ID colonna di identità. Controlliamo se proviamo a passare un valore esplicito per l’ID della colonna identity.,
CREATE TABLE X (ID INT IDENTITY(1,1) ) ;INSERT INTO X (ID) VALUES (1);
Come vediamo, fornisce un errore di un valore esplicito per la colonna identity nella tabella X e suggerisce anche che se vogliamo inserire un valore esplicito per la colonna identity, IDENTITY_INSERT deve essere attivato.
Ora proviamo a eseguire di nuovo l’istruzione sopra dopo aver impostato IDENTITY_INSERT SU .
SET IDENTITY_INSERT dbo.X ONINSERT INTO X (ID) VALUES (1);SET IDENTITY_INSERT dbo.X OFF
Come vediamo , il valore esplicito per la colonna identity viene inserito nella tabella.,
Nell’istruzione precedente , Dobbiamo specificare l’elenco delle colonne durante l’inserimento altrimenti non consentirà il valore esplicito per la colonna identity e genererà un errore.
Come vediamo nella seguente istruzione anche dopo IDENTITY_INSERT ON , fornisce ancora un errore di valori espliciti per la colonna identity poiché dobbiamo specificare il nome della colonna durante l’inserimento.