现在需要处理很多个同结构的数据库,需要从A表将数据导入到B表,导入时,A表的自增字段的ID要插入到B表的字增字段。现在有两种比较笨的办法:    第一种是使用DTS,导入过程中编辑择映射关系时,启用标识插入。这种明显不适合多个数据库的重复操作。
    第二种是将B表的自增字段先改为非自增的,使用SQL导入后,再改回去。这种方法在操作多个数据库时,也不方便。    请教如何使insert 的sql语句能够插入标识字段?

解决方案 »

  1.   


    --使用 truncate  table 呢?
      

  2.   

    SET IDENTITY_INSERT  B  ONINSERT B(ID,...)
    select ID,...
    from A
    where ...SET IDENTITY_INSERT  B  OFFSET IDENTITY_INSERT  C  ONINSERT C(ID,...)
    select ID,...
    from A
    where ...SET IDENTITY_INSERT  C  OFF
      

  3.   

    SET IDENTITY_INSERT    ON 设为ON才能显示插入
      

  4.   

    我觉得是这样的
    你先把A表数据和B表数据先后导入C表 给他们弄个新的自增字段 把原来的自增字段舍弃
    然后 清空B表 保留B表结构
    然后把C表数据倒回到B表里