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查询解决方案使两个表具有相同的数据?
您可以在事务中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)