需求是这样的:需要保存一批数据,保存之前要对每条记录判断表中是否已存在,如果存在则更新,如果不存在则执行insert
一条SQL能解决么?貌似在db2中用过,忘记怎么写了

解决方案 »

  1.   

    Merge
      

  2.   

    --假设你保存后的表为A,要处理的表为BUPDATE B
    SET b.xx=a.xx ,.....这里把你要更新的列写上
    FROM B INNER JOIN A ON B.主键=A.主键INSERT INTO B
    SELECT *
    FROM A
    WHERE NOT EXISTS (SELECT 1 FROM B WHERE B.主键=A.主键)
      

  3.   


    if exists(select 1 from tableB where id =1)
    begin
    update TableB set ** where id =x
    end
    else
    begin
    insert into TableB values ('')
    end