0

我不小心从表中删除了我的记录。该记录有一个键列,该键列与数据库中的其他一些表相关联。我已经恢复了数据库,并且可以访问之前删除的记录。当我尝试使用 INSERT SELECT 方法时,我收到消息'An explicit value for the identity column in table 'IEP.dbo.IEP' can only be specified when a column list is used and IDENTITY_INSERT is ON.'然后我在所有列上运行插入,但在我的表设计中,身份设置为“是”的第一列。现在我想知道有没有办法更新密钥?新记录自动生成新密钥,我想将该值更新为旧密钥。这是示例:

旧/当前表:

i_key
1002491

临时/备份表:

i_key
975217

用临时列 i_key 值更新当前列 i_key 值的最佳解决方案是什么?如果有人可以提供帮助,请告诉我。谢谢!

4

2 回答 2

2

您可以通过首先发出标识插入语句来执行此操作,如下所示:

SET IDENTITY_INSERT [tablename] ON  
go

(do insert)
go

SET IDENTITY_INSERT [tablename] Off
go

确保在之后将其关闭,因为一次只能在一个表中插入身份。

于 2017-06-21T19:38:50.290 回答
-1

您需要在更新前打开 IDENTITY_INSERT 选项,如下所示:

SET IDENTITY_INSERT Table1 ON
UPDATE [dbo].[Table1]
    SET [TrackingNumber2]=[TrackingNumber]
SET IDENTITY_INSERT Table1 OFF
于 2017-06-21T19:40:59.000 回答