特定の行をあるテーブルから別のテーブルにコピーしようとしています。テーブルの形式は同じですが、一部のレコードが欠落しています。これは私が得ているエラーメッセージです:
「テーブル 'dbo.table' の ID 列の明示的な値は、列リストが使用され、IDENTITY_INSERT が ON の場合にのみ指定できます。」
問題は、列リストを使用していて、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
何か案は?同じ ID 値を使用する必要があるため、挿入中に値を増やすことはできません。SQL Server 2005 を使用しています。ご提案をよろしくお願いします。