NOT MATCHED BY SOURCE
和 NOT MATCHED BY TARGET
有什么区别?
例如:
WHEN NOT MATCHED BY SOURCE
是否意味着记录存在于目标中但不存在于源中? - 所以我们可以删除它们?
和
WHEN NOT MATCHED BY TARGET
- 意味着记录存在于源中但不存在于目标中?所以我们可以插入它们?
WHEN NOT MATCHED BY TARGET - 您应该使用此子句将新行插入到目标表中。您插入到表中的行是源表中目标表中没有匹配行的行。
当源不匹配时 - 如果要从目标表中删除与源表中的行不匹配的行
请谨慎使用,因为您可能需要进一步限定
WHEN NOT MATCHED BY SOURCE
。
例如,如果
TARGET
表有一列 SOURCE
没有 .. 并且您在上述插入期间设置该目标列 .. 那么您可能需要定义该约束:
WHEN NOT MATCHED BY SOURCE AND (TARGET.SomeColumn = yada)
您想要将目标表与源表匹配。最后你的目标表应该与源表类似
WHEN NOT MATCHED BY SOURCE
:关注SOURCE:目标中的某些行在source表中没有任何等效项。所以你应该删除它。
WHEN NOT MATCHED BY Target
:关注目标:源中的某些行在目标表中没有任何等效项。这样你就可以插入它们