一尘不染

如何在SQL Server 2008中一次为多个表设置IDENTITY_INSERT ON

sql

我有两个表tblData1tblData2现在我想从另一个带有标识插入的表中迁移记录,并且尝试运行如下所示的命令

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

但是它显示错误如下

表’Sample_Training.dbo.tblData1’的IDENTITY_INSERT已经打开。无法对表’dbo.tblData2’执行SET操作

是否可以IDENTITY_INSERT在SQL Server 2008中一次执行多个


阅读 175

收藏
2021-05-16

共1个答案

一尘不染

任何时候,会话中只有一个表可以将IDENTITY_INSERT属性设置为ON。

因此,在启用另一个功能之前,应先将其启用。
如果表的数量较少,则可以在操作之前和之后打开和关闭。
如果表数量巨大,则应在操作之前以某种方式自动启用和禁用。

2021-05-16