SET IDENTITY_INSERT, a cosa serve?
Ciao a tutti,
Il comando SET IDENTITY_INSERT
Per inserire i dati nella tabella non andrò a specificare un valore per campo ID. Tale valore sarà infatti generato in automatico:
..e ben ritrovati. Mi fa piacere che questi post, a volte brevi, a volte più lunghi siano apprezzati! Per questo vi dico un grazie di Cuore. Quello che cerco di fare è di essere sempre il più chiaro possibile. Quindi qual'ora non lo fossi ditemelo pure.. consigli e critiche costruttive sono sempre un regalo. Buona lettura!
Oggi breve articolo sul comando T-SQL SET IDENTITY_INSERT <NOMETABELLA> ON/OFF
Il comando SET IDENTITY_INSERT
Diciamo subito a che cosa serve.
Supponiamo di avere una tabella <NOMETABELLA> in cui è definito un campo di tipo identità come ad esempio il campo ID nell'esempio sotto:
CREATE TABLE ELENCOTELEFONICO
(ID INT IDENTITY(1,1),
CODICE VARCHAR(40)
)
Per inserire i dati nella tabella non andrò a specificare un valore per campo ID. Tale valore sarà infatti generato in automatico:
INSERT INTO <NOMETABELLA> (CODICE) VALUES ('AAA')
Tramite il comando SET IDENTITY INSERT <NOMETABELLA> ON posso andare ad specificare e forzare il campo del campo ID.
Ad esempio:
SET IDENTITY_INSERT ELENCOTELEFONICO ON
INSERT INTO ELENCOTELEFONICO(ID,CODICE) VALUES (1,'BBB')
SET IDENTITY_INSERT ELENCOTELEFONICO OFF
Attenzione però a riportare a OFF il valore dell'identity_insert perchè altrimenti tutti gli insert privi del campo ID falliranno perchè l'automatismo che propone il valore per il campo ID è disabilitato.
Infine chiariamo due aspetti importanti che spesso mi vengono chiesti:
- Il comando vale al di fuori della sessione. Se imposto ad ON l'identity_insert per una tabella qualsiasi applicazione che cercerà di inservi dei dati dovrà inserire un valore anche per il campo identity.
- E' possibile impostare il valore dell'identity insert a ON solo per una tabella alla volta.
Ciao ed alla prossima!
Luca
Luca Biondi @ SQLServerPerformance blog!
Next post: Ultimo tentativo di accesso a SQL e la "Dedicated Admin Connection" (DAC)
Previous post: Trigger e la funzione UPDATE()
Comments
Post a Comment