各位好,向大家请教个问题!
有两个表A与B,表的结构相同,都包含字段id和name,id为主键,怎样把表A的数据更新到表B中去,如果表A中的id包含在表B中,则把表A中的这条id数据更新到表B中去,如果表A中的id不包含在表B中,则把表A中的这条id数据插入到表B中去。

解决方案 »

  1.   

    --更新
    update A set A.Name=B.Name FROM A JOIN B ON A.id=B.id--插入
    insert into A 
    SELECT B.* FROM B LEFT JOIN A ON A.id=B.id 
    where A.id is null
      

  2.   

    update A set A.Name=B.Name from A inner join  B ON A.id=B.id
    insert into B
    SELECT * from A where A.id not in (select id from B)
      

  3.   

    现做2个查询,把A,B表的ID查询出来存在2个DataSet里ds1,ds2
    然后做判断for(int i=0;i<ds1.Table[0].Rows.Count;i++)
    {
        for(int j=0;j<ds2.Table[0].Rows.Count;j++)
        {
             if(ds1.Table[0].Row[i]["id"]==ds2.Table[0].Row[j]["id"])
             {
             //update
             }
             else
             {
             //insert
             }
        }
    }
      

  4.   

    A,B搞反了--更新
    update B set B.Name=A.Name FROM B JOIN A ON A.id=B.id--插入,如果记录多,not in效率不如join
    insert into B 
    SELECT A.* FROM A LEFT JOIN B ON A.id=B.id 
    where B.id is null