IDENTITY_INSERT が OFF に設定されています。ON にするにはどうすればいいですか? 質問する

IDENTITY_INSERT が OFF に設定されています。ON にするにはどうすればいいですか? 質問する

削除されたファイルの 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

おすすめ記事