我有一个已删除文件档案数据库,其中存储了已删除文件的ID,我希望管理员能够恢复该文件(以及链接文件的相同ID).我不想把identity_insert从整个表中go 掉,因为按1递增效果很好.在我的insert to TBL_Content store程序中,我有这样的东西

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

但我一直在犯同样的错误:

无法在表中插入标识列的显式值

有什么帮助吗?

推荐答案

是否应该在存储过程中将标识插入设置为on?看起来只有在更改存储过程时才将其设置为打开,而不是在实际调用存储过程时.try :

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

SET IDENTITY_INSERT tbl_content ON

...insert command...

SET IDENTITY_INSERT tbl_content OFF
GO

Sql相关问答推荐

在SQL Server中使用LEFT连接包含特定记录

基于时间的SQL聚合

如何使用ROW_NUM() Select 一个没有第二条记录的实例?

Django将字符串筛选为整数?

SQL:计算与另一列中给定值互斥的匹配项

OVER子句WITH PARTITION BY和ORDER BY忽略主查询的WHERE子句

在SELECT中将日期格式转换为双周时段

如何将不同层次的产品组和规格组合到最深一层?

当active=1时,是否可以创建id为的唯一索引?

不存在记录的国外关键点

存储过程太慢

更改重复值的情况

如何使用最后一个非 NULL 值在 PostgreSQL 列中填充 NULL 值

SQL获取两个日期范围之间的计数

joins 组合多个重复数据删除策略

如何根据与 BigQuery 中另一个表的匹配更新一个表中的列?

在给定列中具有特定值的行与 SQL 中的总行数的比率

在 MySql 数据库中的两个日期之间搜索

在 Microsoft SQL Server 中,如何只为特定值保留不同的行?

创建一个将层次 struct 级别放入列中的查询