1. ホーム
  2. sql

[解決済み] IDENTITY_INSERTがOFFに設定されています - どうすればONにできますか?

2022-08-11 13:43:24

質問

削除されたファイルのアーカイブ データベースがあり、削除されたファイルの 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 に設定されている場合、ID 列の明示的な値をテーブル IDENTITY_INSERT が OFF に設定されている場合、'TBL_Content' に ID 列の明示的な値を挿入できません。

何か良い方法はありませんか?

どのように解決するのですか?

代わりに、ストアドプロシージャ内で ID 挿入をオンに設定する必要がありますか。 ストアド プロシージャを変更するときだけオンに設定し、実際に呼び出すときには設定しないようにしているようです。 試してみてください。

ALTER procedure [dbo].[spInsertDeletedIntoTBLContent]
@ContentID int, 

SET IDENTITY_INSERT tbl_content ON

...insert command...

SET IDENTITY_INSERT tbl_content OFF
GO