SQLServer2008中的Merge


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 表結果為:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM