SQL 合并与目标不匹配 vs 与源不匹配

SQL merge not matched by target vs not matched by source

NOT MATCHED BY SOURCENOT MATCHED BY TARGET 有什么区别?

例如:

是否WHEN NOT MATCHED BY SOURCE表示记录存在于目标中但不存在于源中? - 所以我们可以 删除 它们 ?

WHEN NOT MATCHED BY TARGET - 意味着记录存在于源中但不存在于目标中?所以我们可以插入它们?

WHEN NOT MATCHED BY TARGET - 您应该使用此子句将新行插入目标 table。您插入 table 的行是源 table 中目标中没有匹配行的那些行。

WHEN NOT MATCHED BY SOURCE - 如果要从目标 table 中删除与源 table

中的行不匹配的行

谨慎使用,因为您可能需要进一步限定 WHEN NOT MATCHED BY SOURCE

例如,如果 TARGET table 有一个 SOURCE 没有的列..并且您在上述插入过程中设置了目标列..那么您'您可能想要定义该约束:

WHEN NOT MATCHED BY SOURCE AND (TARGET.SomeColumn = yada)