我有两个表 tblData1
和 tblData2
,现在我想从另一个带有身份插入的表迁移记录,我正在尝试运行如下所示的命令
SET IDENTITY_INSERT LP1.dbo.tblData1 ON
GO
SET IDENTITY_INSERT LP1.dbo.tblData2 ON
GO
INSERT INTO LP1.DBO.tblData1 (ID,DATA)
SELECT ID,DATA FROM LP.DBO.tblData1
GO
INSERT INTO LP1.DBO.tblData2 (ID,DATA)
SELECT ID,DATA FROM LP.DBO.tblData2
GO
SET IDENTITY_INSERT LP1.dbo.tblData1 OFF
GO
SET IDENTITY_INSERT LP1.dbo.tblData2 OFF
GO
但是显示如下错误
IDENTITY_INSERT is already ON for table 'Sample_Training.dbo.tblData1'. Cannot perform SET operation for table 'dbo.tblData2'
是否可以在 SQL Server 2008 中一次执行多个 IDENTITY_INSERT
最佳答案
在任何时候, session 中只有一个表可以将 IDENTITY_INSERT 属性设置为 ON。
所以在启用另一个之前,你应该关闭现有的(如果有的话)。
如果表数较少,您可以在操作前后打开和关闭。
如果表数很大,您应该在操作之前以某种方式自动启用和禁用。
关于sql - 如何在 SQL Server 2008 中同时为多个表设置 IDENTITY_INSERT ON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27615391/