存在一个临时表temp,表中无主键,有重复数据,有一固定表abc,比temp表多1个自增字段idkey,
现在我想把temp表中的数据全插入abc表中,而自增字段无需处理,请问该怎么办呢?自增字段的数据类型是什么啊?

解决方案 »

  1.   

    自增字段本来就无需处理的类型嘛,很多,int bigint decimal
      

  2.   

    如果temp表与abc表的表结构一样,只是abc多一个自增列的话。
    可以这样插入。不需要管自增列
    只需要:
    insert into abc select * from temp自增类型的数据类型是int
      

  3.   

    我说的自增字段的意思是,设好这个字段的数据类型,之后就不需要管了,在插入别的字段时,自增字段自动生成,
    想上面我说的把temp的数据插入abc中,该用什么语句呢?
      

  4.   

    不行,我temp中有重复数据,插入abc时,出现插入重复键错误,自增字段没能起到作为主键区分开记录的功能啊。
    我要把在abc中多设个字段,就是想把temp中的重复记录区分开来的啊,有高人有办法解决吗?
      

  5.   

    oracle or  sqlserver or other databases?
      

  6.   

    我只知道将类型为int的主键设为标识它就会自增了,插入数据的时候有重复数据也没有事,因为自动生成的主键是不一样的。除非其它列上有唯一约束
    我追随2楼的
      

  7.   

    是啊,abc表中的自增字段是主键啊,也标识上了啊,但还是插入不了,
    出现错误:仅当使用了列的列表,并且 IDENTITY_INSERT 为 ON 时,才能在表 'abc' 中为标识列指定显式值。
      

  8.   

    在insert into 表前加上这个
    set IDENTITY_INSERT abc on
      

  9.   

    终于好了,insert into abc(这里要插入的字段列出来) select * from temp 
      

  10.   

    终于好了,insert into abc(这里要插入的字段列出来) select * from temp  
    ---------------------------------------------
    那是因为你的abc表和temp结构除了多一个自增列以外,还多其他字段吧?
      

  11.   

    从来没有做过插入整表的工作,看来以后要做的时候要多注意IDENTITY_INSERT
    谁能解释一下这个神奇的IDENTITY_INSERT,谢谢~