insert into a select * from b

解决方案 »

  1.   

    如果只顯示
    select * from a 
    union all
    select * from b
      

  2.   

    真不好意思,没把问题表达清楚:a表其中一列有唯一约束,b中的记录有可能与a表中的记录相同,且a表的主键为自增的id字段,请问如何才能向a中添加不重复的记录,且这些记录的id根据a中的主键顺延?谢谢大虾们!
      

  3.   

    insert into a(col1,col2,col3.....)
    select (col1,col2,col3.....) from b where 
    not exists(select * from a where not exists(select * from b))
      

  4.   

    insert into a
    select * from b
      

  5.   

    先此谢过楼上各位打下,但好像不行,可能小弟愚钝,我再重复一遍问题,烦请大虾具体点。特此感谢。a表与b表结构一样col1(自增, 主键) col2(唯一约束),col3a表有如下记录col1 col2 col3
    1    A    a
    2    B    b
    3    C    c
    4    D    db表有如下记录col1 col2 col3
    1    E    e
    2    D    d
    3    F    f
    4    B    b    现将b表加进a表中后,a表得出如下结果:
    col1 col2 col3
    1    A    a
    2    B    b
    3    C    c
    4    D    d
    5    E    e
    6    F    f
      

  6.   

    insert into a(col2,col3)
    select col2,col3 from b where col2 not in(select col2 from a)
      

  7.   

    谢过楼上jary12581大虾,试验成功,若问题改为a表与b表结构一样col1(自增, 主键) col2(唯一约束,nvarchar),col3(nvarchar)a表有如下记录col1 col2 col3
    1    A    a
    2    B    null值
    3    C    c
    4    D    4
    5    E    5b表有如下记录col1 col2 col3
    1    E    e
    2    D    d
    3    F    f
    4    B    b  把b表加进a后,a的结果为col1 col2 col3
    1    A    a
    2    B    b
    3    C    c
    4    D    d
    5    E    e
    6    F    f即,col2相同时,A中的col3的值被B中col3的值取代我这人特别麻烦,还望大虾们见谅。再次表示感谢。
      

  8.   

    update table2 set table2.col3=table1.col1 where table1.col2=table2.col2 and table1.col1=table2.col1
      

  9.   

    update a set a.col3=b.col3
    from a,b where a.col2=b.col2
      

  10.   

    update a 
    set a.col3=b.col3
    from b //这里表a可以省去
    where a.col2=b.col2