SQLServer2008中的Merge

it2022-05-05  126

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功能

最新回复(0)