2

ID 列を持つテーブルにレコードを挿入しようとしています。さまざまな理由から、これは単純な挿入ではなく、外部テーブルと同じ ID を持つ必要があります。だから私は実行します:

EXECUTE ('SET IDENTITY_INSERT RemoteDB.dbo.FrameContent ON')

INSERT INTO [RemoteDB].[dbo].[FrameContent] ([ID],[FrameID],[PacketType]) 
SELECT [ID],[FrameID],[PacketType]
FROM FrameContent 
WHERE [ID] NOT IN (SELECT [ID] FROM [RemoteDB].[dbo].[FrameContent])

そして、私はエラーが発生します:

Cannot insert explicit value for identity column in table 'FrameContent' when IDENTITY_INSERT is set to OFF.

何か案は?IDENTITY_INSERT を OFF にすべきではないと文句を言いますが、ON に設定しています。

4

1 に答える 1

9

dentity_insert外側に設定してみてくださいexecute:

SET IDENTITY_INSERT RemoteDB.dbo.FrameContent ON;
INSERT ...

executeに設定すると、 内の他のステートメントにのみ適用されますexecute

于 2013-06-20T11:06:01.223 に答える