エラー メッセージは、問題の原因を明確に示しています。
テーブル 'dbo.menu_code' の ID 列の明示的な値は、列リストが使用され、IDENTITY_INSERT が ONの場合にのみ指定できます。
値を挿入しようとしている列を明示的に定義する必要があります。
SET IDENTITY_INSERT [menu_code] ON
INSERT INTO [dbo].[menu_code] (Col1, Col2, Col3, Col4, Col5, IdentityCol, Col6, Col7)
VALUES('', '', '', '', '',
1 -- Auto Generated Identity column
,'', '')
SET IDENTITY_INSERT [menu_code] OFF
いずれにせよ、これを常に行うことをお勧めします。列のリスト (onINSERT
とSELECT
ステートメントの両方) を省略すると、後で厄介な驚きに備えることになります。はい、少し入力する必要があります - 一度、クエリを作成するとき - しかし、頭痛の種と厄介なバグを見つけようとする時間を数え切れないほど節約できます...操作したい列のリストを明示的に定義するだけです、いつも。
更新:別のテーブルからこれらの値を挿入する場合は、 との両方で列名の明示的なリストを使用することを強くINSERT
お勧めしSELECT
ます。
SET IDENTITY_INSERT [menu_code] ON
INSERT INTO [dbo].[menu_code] (Col1, Col2, Col3, Col4, Col5, IdentityCol, Col6, Col7)
SELECT Col1, Col2, Col3, Col4, Col5, IdentityCol, Col6, Col7
FROM DM_LUBRICANTS.dbo.menu_code
SET IDENTITY_INSERT [menu_code] OFF