Merge Into '目标表Target'using'语句或源表Source' ON 目标表与源表关联条件 When Matched and 条件 Then 更新语句 When Not Matched By Target 如果‘目标表’不存在行 Then 插入语句
if exists(select top 1 * from KeDaoTest.dbo.salary)
begin
--选择'目标表T'
Merge Into KeDaoTest.dbo.salary as T
--从'源表S'查找编码相同的列,并进行关联
using (select autono,no2,name,Sdatetime from mpsalary.dbo.salary as ss where ss.Sdatetime > DateAdd(Month,-2,getdate())) as S on T.autono=S.autono
--检查是否有改动过的列
When Matched and T.autono <> S.autono or T.no2 <> S.no2 or T.name <> S.name or T.SDatetime<>S.SDatetime
--有改动过则update'目标表'的列
Then Update set T.autono=S.autono,T.no2=S.no2,T.name=S.name,T.SDatetime=S.SDatetime
--如果‘目标表’不存在行
When Not Matched By Target
--则从'源表'insert行到'目标表'
Then Insert (autono,no2,name,SDatetime) values (S.autono,S.no2,S.name,S.SDatetime)
When Not Matched By Source and T.Sdatetime > DateAdd(Month,-2,getdate())
Then Delete;
end ---merge的end关键字