SQL ServerのID列にID
を挿入するにはどうすればよいですか?テーブルに特別なアイテムを作成し、ID
によってそのアイテムをすばやく検出します。他のすべてのIDは1以上であるため、その特別なアイテムにはIDゼロを指定します。
問題は、テーブルを作成したときに、列IDのIDをtrueに設定したことです。以下のコードを含む特別なアイテムを挿入すると、次のエラーが発生します。
INSERT INTO MyTable(ID, Name, Description)
VALUES (0, 'Special title', 'special item');
エラー:
IDENTITY_INSERT
がMyTable
に設定されている場合、テーブルOFF
のID列に明示的な値を挿入できません。
このテーブル、列、またはプロパティを変更して、IDがゼロのレコードを作成するにはどうすればよいですか?
明示的なIDの挿入には、IDENTITY_INSERT
プロパティをONに設定する必要があります。
SET IDENTITY_INSERT MyTable ON -- Statement Allows explicit values to be inserted into
-- the identity column of a table.
GO
INSERT INTO MyTable(ID, Name, Description)
VALUES (0, 'Special title', 'special item');
GO
SET IDENTITY_INSERT MyTable OFF -- Statement revert granted permission
GO
使用する SET IDENTITY_INSERT TABLEnAME ON
IDをオフにすることを忘れないでください。identity_insertを同時にオンにできるのは1つのテーブルだけです。