削除されたファイルの ID を保存する削除済みファイル アーカイブ データベースがあり、管理者がファイルを復元できるようにしたい (また、リンク ファイル用の同じ ID も復元できるようにしたい)。1 ずつ増分するとうまく機能するため、テーブル全体から identity_insert を削除したくありません。TBL_Content
ストア プロシージャへの挿入では、次のような処理を行います。
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
SET IDENTITY_INSERT tbl_content ON
GO
ALTER procedure [dbo].[spInsertDeletedIntoTBLContent]
@ContentID int,
...insert command...
SET IDENTITY_INSERT tbl_content OFF
しかし、同じエラーが繰り返し発生します:
IDENTITY_INSERT が OFF に設定されている場合、テーブル 'TBL_Content' の ID 列に明示的な値を挿入することはできません。
何か助けて?
ベストアンサー1
代わりに、ストアド プロシージャ内で ID 挿入をオンに設定する必要がありますか? ストアド プロシージャを実際に呼び出すときではなく、変更するときにのみオンに設定されているようです。次を試してください。
ALTER procedure [dbo].[spInsertDeletedIntoTBLContent]
@ContentID int,
SET IDENTITY_INSERT tbl_content ON
...insert command...
SET IDENTITY_INSERT tbl_content OFF
GO