在sql server 2008中一个不知道能不能实现的sql,请指点
需求是这样的:需要保存一批数据,保存之前要对每条记录判断表中是否已存在,如果存在则更新,如果不存在则执行insert
一条SQL能解决么?貌似在db2中用过,忘记怎么写了
[最优解释]
if exists(select 1 from tableB where id =1)
begin
update TableB set ** where id =x
end
else
begin
insert into TableB values ('')
end
--假设你保存后的表为A,要处理的表为B
UPDATE 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.主键)