首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用自动增量列从表中复制数据

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

Stack Overflow用户
提问于 2016-01-20 07:49:41
回答 3查看 5.6K关注 0票数 3

我在Server中有一个具有自动增量列的数据的表.自动增量列中的数据不是连续的。这就像1, 2, 3, 5, 6, 7, 9 (缺少4和8)。

我希望将这个表中的确切数据复制到另一个新的和空的相同的表中。目标表还有一个自动增量列。

问题:当我使用下面的查询复制数据时,AttachmentID有新的和不同的值

代码语言:javascript
复制
INSERT INTO FPSDB_new.dbo.Form_Attachment
    SELECT
        CategoryID
    FROM
        FPSDB.dbo.Form_Attachment

目标和源中的Form_Attachment表与下面的相同

代码语言:javascript
复制
CREATE TABLE [dbo].[Form_Attachment] 
(
    [AttachmentID] [int] IDENTITY(1,1) NOT NULL,
    [CategoryID]   [int] NULL
)

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

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-01-20 07:51:53

您可以通过在事务中使用IDENTITY列插入SET IDENTITY_INSERT ON (不要忘记在事务之后关闭它):

INSERT on and off using SQL Server 2008?

代码语言:javascript
复制
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
票数 8
EN

Stack Overflow用户

发布于 2016-01-20 07:54:17

您也可以这样做:

  1. 删除副本表
  2. 创建作为select,这将复制确切的结构和数据到新的表。 从new_table old_table中选择* into
票数 1
EN

Stack Overflow用户

发布于 2016-01-20 07:54:25

可以使用以下命令:将IDENTITY_INSERT设置为ON

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34894330

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档