zoukankan      html  css  js  c++  java
  • SQL SERVER 从其它数据库中复制带自增ID主键的表数据

    SQL SERVER两个结构相同(或不同)的表,互相导入数据,方法有两种:

    1、使用SQL SERVER 自带的导出、导入功能,在库名上右击,“任务”,导出数据、导入数据,这个操作具体不就不多讲了。

    2、使用语句直接复制,从XXX表复制数据到YYY表

    步骤1、首先,需要设置下插入允许自增ID。

    SET IDENTITY_INSERT 表名YYY ON

    如果提示 表 'XXX' 的 IDENTITY_INSERT 已经为 ON。无法为表 'YYY' 执行 SET 操作。

    那么需要先将XXX表设置为OFF,再执行上面的代码将YYY设置为ON。

    SET IDENTITY_INSERT 表名XXX OFF

    步骤2、清空原表数据

    如果原表主键ID不会重复,或者你的原表数据需要保留,那么这一步可以不需要,只要保证不重复即可。

    truncate table 表YYY

    步骤3、复制数据

    本地表复制

    INSERT INTO 表YYY (
    [Id] ,
    [字段1],
    [字段2])
    SELECT
    [Id] ,
    [字段1],
    [字段2]
    FROM 表XXX

     

    跨机器跨网络复制:

    INSERT INTO 表YYY (
    [Id] ,
    [字段1],
    [字段2])
    SELECT
    [Id] ,
    [字段1],
    [字段2]
    FROM opendatasource( 'SQLOLEDB','Data Source=172.0.0.2;User ID=user;Password=pass').数据库.表XXX

    需要注意的是,必须要两边都指定具体的字段名称,不能用*号,否则可能会提示以下错误:
    仅当使用了列列表并且 IDENTITY_INSERT 为 ON 时,才能为表'YYY'中的标识

    或者会因为字段不对应而提示一些奇怪的错误,例如:

    在将 varchar 值 'AAAA' 转换成数据类型 int 时失败

  • 相关阅读:
    支持向量机(二)
    kafka partiton迁移方法与原理
    park和unpark
    Replicated State Machine和WAL
    thrift源码分析
    thrift使用和源码分析
    kafka源码环境搭建
    kafka指定partiton生产
    gradle构建scala
    kafka consumer代码梳理
  • 原文地址:https://www.cnblogs.com/sunny-sl/p/11327263.html
Copyright © 2011-2022 走看看