如何替换 table 列 SQL 2008 中的 IDENTITY ID?
How to replace IDENTITY ID in table column SQL 2008?
我不小心从 table 中删除了我的记录。该记录有一个键列,该列与数据库中的其他一些 table 相关联。我已经恢复了数据库,我可以访问我之前删除的记录。当我尝试使用 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.'
然后我 运行 在所有列上插入,但在我的 table 设计中设置身份的第一列是.现在我想知道有没有办法更新密钥?新记录自动生成新键,我想将该值更新为旧键。这是示例:
Old/Current table:
i_key
1002491
Temporary/Backup table:
i_key
975217
用临时列 i_key 值更新当前列 i_key 值的最佳解决方案是什么?如果有人可以提供帮助,请告诉我。谢谢!
您可以通过首先发出一个身份插入语句来做到这一点:
SET IDENTITY_INSERT [tablename] ON
go
(do insert)
go
SET IDENTITY_INSERT [tablename] Off
go
确保之后将其关闭,因为一次只有一个 table 可以插入身份。
更新前需要开启IDENTITY_INSERT选项,如下:
SET IDENTITY_INSERT Table1 ON
UPDATE [dbo].[Table1]
SET [TrackingNumber2]=[TrackingNumber]
SET IDENTITY_INSERT Table1 OFF
我不小心从 table 中删除了我的记录。该记录有一个键列,该列与数据库中的其他一些 table 相关联。我已经恢复了数据库,我可以访问我之前删除的记录。当我尝试使用 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.'
然后我 运行 在所有列上插入,但在我的 table 设计中设置身份的第一列是.现在我想知道有没有办法更新密钥?新记录自动生成新键,我想将该值更新为旧键。这是示例:
Old/Current table:
i_key
1002491
Temporary/Backup table:
i_key
975217
用临时列 i_key 值更新当前列 i_key 值的最佳解决方案是什么?如果有人可以提供帮助,请告诉我。谢谢!
您可以通过首先发出一个身份插入语句来做到这一点:
SET IDENTITY_INSERT [tablename] ON
go
(do insert)
go
SET IDENTITY_INSERT [tablename] Off
go
确保之后将其关闭,因为一次只有一个 table 可以插入身份。
更新前需要开启IDENTITY_INSERT选项,如下:
SET IDENTITY_INSERT Table1 ON
UPDATE [dbo].[Table1]
SET [TrackingNumber2]=[TrackingNumber]
SET IDENTITY_INSERT Table1 OFF