无法将表从一个SQL Server数据库复制到另一个SQL Server数据库,获取identity_insert错误(但它已启用)

时间:2013-11-01 21:12:45

标签: sql sql-server

我正在尝试将某些行从一个表复制到另一个表。这些表的格式相同,但其中一个缺少一些记录。这是我收到的错误消息:

“只有在使用列列表并且IDENTITY_INSERT为ON时,才能指定表'dbo.table'中标识列的显式值。”

问题是,我正在使用列列表,并且IDENTITY_INSERT已启用。我通过在目标表中插入一行并指定标识列来确认这一点。它工作正常。我已经找到了我能找到的关于如何做到的一切,我发现的一切都说我的语法很好。这是我的代码:

SET IDENTITY_INSERT dbo.table ON
GO
INSERT 
INTO dbo.table 
SELECT [IDcol], [col2], etc.
FROM database.dbo.table
WHERE stuff
GO
SET IDENTITY_INSERT dbo.table OFF

因此产生了错误。但是,这很好用:

SET IDENTITY_INSERT dbo.table ON
GO
INSERT INTO dbo.table (IDcol, col2) 
VALUES (155555555, 0)
GO
SET IDENTITY_INSERT dbo.table OFF

有什么想法吗?我需要使用相同的标识值,因此在插入期间让它们递增不是一种选择。我正在使用SQL Server 2005.提前感谢任何建议。

0 个答案:

没有答案