post icon

SQL Disable Identity Insert on column with auto-increment

Spesso vi sarà capitato di dover inserire specifici valori per una colonna auto-increment con Identity Specification.

Supponendo di dover inserire una nuova categoria nella tabella Categories del database Northwind con il seguente statement:

USE [Northwind] GO INSERT INTO Categories(CategoryID, CategoryName, Description) VALUES (33, 'Test Identity', 'Categoria test identity')

L'errore che otteniamo è il seguente:

Cannot insert explicit value for identity column in table 'Categories' when IDENTITY_INSERT is set to OFF.

Bene, è sufficiente disabilitare l'Identity prima di effettuare l'insert ed il gioco è fatto. Ecco come:

USE [Northwind] GO --Disabilito identity insert SET IDENTITY_INSERT [dbo].[Categories] ON INSERT INTO [dbo].[Categories](CategoryID, CategoryName, Description) VALUES (33, 'Test Identity', 'Categoria test identity') --Abilito identity insert SET IDENTITY_INSERT [dbo].[Categories] OFF

Quindi riceviamo il messaggio (1 row(s) affected).

Download source Disable_Enable_Identity_Insert_Auto_Increment.zip (350,00 bytes)

19 febbraio 2009 @ 13:42

No comments yet.

Leave a comment

Leave a Reply

Are you human? Time limit is exhausted. Please reload CAPTCHA.