首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

在sql server 2008中一个不知道能不能实现的sql,请指导

2013-01-06 
在sql server 2008中一个不知道能不能实现的sql,请指点需求是这样的:需要保存一批数据,保存之前要对每条记

在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


[其他解释]
Merge
[其他解释]
if else
[其他解释]
--假设你保存后的表为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.主键)

热点排行
Bad Request.