MERGE语句的基本语法:
MERGE 目标表
USING 源表
ON 匹配条件
WHEN MATCHED THEN
语句
WHEN NOT MATCHED THEN
语句;
以上是MERGE的最最基本的语法,语句执行时根据匹配条件的结果,如果在目标表中找到匹配记录则执行WHEN MATCHED THEN后面的语句,如果没有找到匹配记录则执行WHEN NOT MATCHED THEN后面的语句。注意源表可以是表,也可以是一个子查询语句Merge关键字的一些限制
*
使用Merge关键字只能更新一个表
*
源表中不能有重复的记录
MERGE INTO PersonnelArchives t1
USING ( SELECT * FROM [ PT_JDJ_WH_BQ_20220125] . dbo. JWGL_PersonnelArchives) t2
ON t1. FLnkID= t2. FLnkID
WHEN MATCHED THEN
UPDATE SET t1. FLnkID = t2. FLnkID, t1. RejectionGuid = t2. RejectionGuid, t1. PRegisterGuid = t2. PRegisterGuid,
t1. ChHostGuid = t2. ChHostGuid, t1. Name = t2. Name, t1. Sex = t2. Sex, t1. Nation = t2. Nation, t1. Birthday = t2. Birthday,
t1. Nationality = t2. Nationality, t1. NativePlace = t2. NativePlace, t1. PaperKind = t2. PaperKind, t1. PaperNumber = t2. PaperNumber,
t1. isdelete = t2. isdelete, t1. updateTime = t2. updateTime
WHEN NOT MATCHED THEN INSERT ( FLnkID, RejectionGuid, PRegisterGuid, ChHostGuid, Name, Sex, Nation,
Birthday, Nationality, NativePlace, PaperKind, PaperNumber, isdelete, updateTime)
VALUES ( t2. FLnkID, t2. RejectionGuid, t2. PRegisterGuid, t2. ChHostGuid, t2. Name, t2. Sex, t2. Nation,
t2. Birthday, t2. Nationality, t2. NativePlace, t2. PaperKind, t2. PaperNumber, t2. isdelete, t2. updateTime) ;