小编典典

IDENTITY_INSERT设置为OFF-如何将其打开?

sql

我有一个已删除的文件存档数据库,其中存储了已删除文件的ID,我希望管理员能够恢复该文件(以及用于链接文件的相同ID)。我不想从整个表中删除identity_insert,因为增量为1的效果很好。在我的插入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’中为标识列插入显式值。

有什么帮助吗?


阅读 236

收藏
2021-05-05

共1个答案

小编典典

您是否应该在存储过程中将标识插入设置为on?看起来您仅在更改存储过程时才将其设置为on,而不是在实际调用它时才将其设置为on。尝试:

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

SET IDENTITY_INSERT tbl_content ON

...insert command...

SET IDENTITY_INSERT tbl_content OFF
GO
2021-05-05