1

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

“只有在使用列列表并且 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。提前感谢您的任何建议。

4

0 回答 0