sql MERGE --WHEN NOT MATCHED BY Source 和WHEN NOT MATCHED BY TARGET 是固定格式--用USING中查到的数据S 对T表来操作MERGEINTO[Admin]T USING Admin2ASSON( T.LoginId=S.LoId )WHENNOTMATCHEDBYTARGETTHEN--目标表(T)中不存在 源表(S)中存在INSERT(LoginId ,LoginPwd )VALUES(s.loid ,s.lopwd);g...
即关联条件成功 (这时就应该将 SOURCE 中其它的所有字段值更新到 TARGET 表中)--WHEN NOTMATCHED BY TARGET - 如果匹配不成功 (TARGET 中没有这一条记录但是 SOURCE 表有,说明 SOURCE 表多了新数据因此应该插入到 TARGET 表中)--WHEN NOTMATCHED BY SOURCE - 如果匹配...
WHEN 子句(WHEN MATCHED、WHEN NOT MATCHED BY TARGET 和 WHEN NOT MATCHED BY SOURCE)基于 ON 子句的结果和在 WHEN 子句中指定的任何其他搜索条件指定所要采取的操作。 OUTPUT 子句针对插入、更新或删除的目标中的每一行返回一行。 相关示例: A.使用简单的 MERGE 语句执行 INSERT 和 UPDATE 操作 假定您在数据仓...
WHENMATCHED --当匹配时对目标表的订单日期执行更新操作 THENUPDATESETO.订单日期=DATEADD(HOUR,1,O.订单日期) WHENNOTMATCHEDBYTARGET --当不匹配时对目标表进行插入操作 THENINSERT(客户ID,员工ID,订单日期,发货ID) VALUES(C.客户ID,NULL,NULL,NULL) OUTPUT$actionAS[ACTION],Inser...
MERGEINTOOrdersO--确定目标表OrdersUSINGCustomersCONC.客户ID=O.客户ID--从源表Customers确定关联条件 C.客户ID=O.客户IDWHENMATCHED--当匹配时对目标表的订单日期执行更新操作THENUPDATESETO.订单日期=DATEADD(HOUR,1,O.订单日期)WHENNOTMATCHEDBYTARGET--当不匹配时对目标表进行插入操作THENINSERT(客户ID,员工ID,...
WHEN NOT MATCHED BY TARGET 可用作 WHEN NOT MATCHED 的别名。 not_matched_condition 必须为布尔表达式。 INSERT * 使用源数据集的相应列插入目标 Delta 表的所有列。这等效于目标 Delta 表的所有列 INSERT (col1 [, col2 ...]) VALUES (source.col1 [, source.col2 ...])。此操作要求源表与目标...
WHEN MATCHED THEN UPDATE SET itarget.Name = itarget.Name WHEN NOT MATCHED BY SOURCE THEN DELETE; 最后就是源表中存在,但是目标表中不存在的情况了,我们只需要将上面的BY SOURCE改成BY TARGET即可,通过下面这条语句我们将把源表与目标表不匹配的数据添加到目标表中去(当然我们需要提前在源表中新增一条数据...
when not matched by target /*目标表中匹配不到的数据,在这插入*/ then insert(category_id,category_name,amount) /*插入时没有写向那个表插入,默认向目标表插入*/ values(s.category_id,s.category_name,s.amount) when not matched by source /*源表中找不到的数据,在这里删除*/ ...
MERGEAAStargetUSINGBASsourceON(target.id=source.id)WHENNOTMATCHEDBYtargetTHENINSERT(id,name)VALUES(source.id,source.name); 1. 2. 3. 4. 5. 6. 这个MERGE 语句将会将表 B 中存在但是表 A 中不存在的数据插入到表 A 中。 代码示例 下面是一个完整的代码示例,演示了如何使用以上方法对比差异数据: ...
7on(target.UnitMeasureCode=source.UnitMeasureCode) 8whenmatchedthenupdatesetName=source.Name 9whennotmatchedtheninsert(UnitMeasureCode,Name)values(source.UnitMeasureCode,Name) 10output deleted.*,$action,inserted.*intoMyTempTable; 11end 12go