数据表A,10个字段,包含索引字段ID,大概有1500万条数据,数据表B,8个字段,也包含索引字段ID,大概有1200万条记录,现在要在B表中根据ID的值比对A表的数据,如果找到记录,就更新A表记录,请问有什么高效的办法?

解决方案 »

  1.   

    update 表a set ... from 表a,表b where 条件
      

  2.   

    update a set (field1,field2) select b.field1,b.field2 from a a1,b where condition
      

  3.   

    1.如果你的SQL是运行在现网环境下,个人建议你不要一条命令搞定.  建议你使用游标,分批量处理.
      

  4.   

    学习中,不过简单更新应该SQL足已,复杂的建议游标更合适
      

  5.   

    update A set a.t=xxx  where exists(select 1 from B  where b.ID=A.ID)
      

  6.   

    update A set a.t=xxx  where exists(select 1 from B  where b.ID=A.ID)
      

  7.   

    UPDATE A SET A.X=XXX  WHERE EXISTS (SELECT 1 FROM B WHERE B.ID=A.ID)