SQLserver中mergeinto的⽤法前⾔
如何可以⾼效的把临时表中的数据更新到⽬标表中呢?merge into可以帮你完美解决。merge into 语法
语法如下:
merge into ⽬标表 a
using 源表 b
on a.条件字段1=b.条件字段1 and a.条件字段2=b.条件字段2  ...
when matched update set a.字段1=b.字段1,
a.字段2=
b.字段2
when not matched insert values (b.字段1,b.字段2)
when not matched by source
then delete
merge into 使⽤
创建⽬标表和源表
脚本如下:
create table targetTable(ID INT primary key identity(1,1),[name] varchar(50),age int) create table sourceTable(ID INT primary key identity(1,1),[name] varchar(50),age int) insert into targetTable([name],age) values('⼤卫',40)
使⽤merge into
sql中delete用法脚本如下:
merge into targetTable as t
using sourceTable as S on t.ID=s.ID
when matched      --更新⽬标表中有ID,则更新
then update set t.[name]=S.[name]
when not matched  --添加⽬标表中没有ID,在原表中有,则插⼊相关数据
then insert values (s.[name],s.age)
when not matched by source --⽬标表存在,源表不存在,则删除
then delete;
总结
建议在需要批量执⾏UPDATE的时候使⽤,可以⼤⼤的提⾼效率,并且减少锁表的⼏率。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。