有个数据集datatable dt
现在想往表A和B里移动,假设主键为A.a,B.a不存在的话就insert,存在的话就update能用一个sql做出来吗
我现在是dt循环,然后AB分别处理,A的处理要insert,update分开,总觉得会影响速度,所以请大家帮忙指点
现在想往表A和B里移动,假设主键为A.a,B.a不存在的话就insert,存在的话就update能用一个sql做出来吗
我现在是dt循环,然后AB分别处理,A的处理要insert,update分开,总觉得会影响速度,所以请大家帮忙指点
问题2:你是想从A移到B还是想从别的表移到A、B两表?
我是从外面取得的dt,要插入到A,B两个表sqlserver2008以上的版本,merge不是从db到db么,我这个数据源是datatable,可以吗
insert into a (需要的列名,如果id是自增就不要写id)
select * from dt where not exists (select 1 from a where dt.id=a.id)
insert into b (需要的列名,如果id是自增就不要写id)
select * from dt where not exists (select 1 from b where dt.id=b.id)update a
set a.xx=dt.xx --这里是需要更新的列
from a,dt
where a.id=dt.idupdate b
set b.xx=dt.xx --这里是需要更新的列
from b,dt
where b.id=dt.id
end