SqlServer2008 + 中的 Merge
Merge: 合并 融合
SqlServer2008 中的Merge 用于匹配两种表中的数据,根据源表和目标表中的数据的比较结果对目标表进行对用的插入 更新 删除等操作
主要用于表数据的同步 统计 等
语法:
merge 目标表名
using 源表名/(Select * from 源表) as 源表
on 目标表.字段=源表.字段
when match ---匹配
update set 目标表字段=源表.表字段
when not match --不匹配
insert / delete
举个栗子:
准备数据:
--创建两张表
create table T1(id int,[name] varchar(20))create table T2(id int ,[name] varchar(20))go
--插入数据、insert into T1 values(1,'T1名称1')insert into T1 values(2,'T1名称2')insert into T1 values(3,'T1名称3')insert into T1 values(4,'T1名称4')
insert into T2 values(1,'T2名称1')insert into T2 values(2,'T2名称2')insert into T2 values(5,'T2名称3')insert into T2 values(6,'T2名称4')go
merge T2 --目标表using T1 --源表
on T1.id=T2.id --匹配条件
when matched then --匹配 update set [name]=T1.[name]when not matched then --不匹配 insert values(id,[name]);
执行结果: T2 表结果为:
转载于:https://www.cnblogs.com/yaoweijun/p/8310268.html
相关资源:SQLServer 2008 Merge语句的OUTPUT功能