使用自动增量列从表中复制数据

Sho*_*ail 2 sql sql-server auto-increment

我在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
Run Code Online (Sandbox Code Playgroud)

Form_Attachment目的地和来源中的表格如下

CREATE TABLE [dbo].[Form_Attachment] 
(
    [AttachmentID] [int] IDENTITY(1,1) NOT NULL,
    [CategoryID]   [int] NULL
)
Run Code Online (Sandbox Code Playgroud)

是否有SQL查询解决方案使两个表具有相同的数据?

Dai*_*Dai 7

您可以在事务中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
Run Code Online (Sandbox Code Playgroud)