我正在尝试将某些行从一个表复制到另一个表。这些表的格式相同,但缺少一些记录。这是我收到的错误消息:
“只有在使用列列表并且 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。提前感谢您的任何建议。