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)
Lascia un commento