我在SQL Server中有一个表,该表的数据具有自动增量列。自动增量列中的数据不是连续的。就像1, 2, 3, 5, 6, 7, 9(缺少4和8)。
我想将此表中的确切数据复制到另一个新的和空的相同表中。目标表还具有一个自动递增列。
问题:当我使用下面的查询复制数据时,AttachmentID具有新的值和不同的值
INSERT INTO FPSDB_new.dbo.Form_Attachment SELECT CategoryID FROM FPSDB.dbo.Form_Attachment
Form_Attachment目标和源中的表与下面的相同
CREATE TABLE [dbo].[Form_Attachment] ( [AttachmentID] [int] IDENTITY(1,1) NOT NULL, [CategoryID] [int] NULL )
是否存在SQL查询解决方案以使两个表具有相同的数据?
您可以在交易中IDENTITY使用插入列SET IDENTITY_INSERT ON中(不要忘了之后将其关闭):
如何使用SQL Server 2008打开和关闭IDENTITY_INSERT?
SET IDENTITY_INSERT FPSDB_new.dbo.Form_Attachment ON INSERT INTO FPSDB_new.dbo.Form_Attachment ( AttachmentID, CategoryID ) SELECT AttachmentID, CategoryID FROM FPSDB.dbo.Form_Attachment SET IDENTITY_INSERT FPSDB_new.dbo.Form_Attachment OFF