INSERT文でIDENTITYが指定されている列に明示的な値を挿入する方法
本投稿のSQL Serverのバージョンは「2017 Developer Edition」です。SQL Server Management Studioのバージョンは「17.3」です。
IDENTITYが指定されている列に明示的な値を挿入する方法です。
テーブル定義はこんな感じです。
CREATE TABLE [dbo].[Table_1]( [ID] [int] IDENTITY(1,1) NOT NULL, [Column1] [char](10) NULL, [Column2] [char](10) NULL ) ON [PRIMARY]
上記のテーブルの[ID]列に対して、INSERT文で明示的に値を指定すると以下の様なエラーになります。
これを、回避するには、「SET IDENTITY_INSERT [データベース名].[スキーマ名].[テーブル名] ON」を実行して、「IDENTITY_INSERT」を有効にします。
すると、以下の様にエラーが起きなくなります。
設定を戻すには、「SET IDENTITY_INSERT [データベース名].[スキーマ名].[テーブル名] OFF」を実行して、「IDENTITY_INSERT」を無効にします。
元に戻すと、また、エラーが起きるようになります。