2016-09-21 79 views
6

需要一点点的帮助,请,我的SQL几乎是不存在的......SQL合并未被目标匹配

是什么VS NOT MATCHED BY TARGET

例如NOT MATCHED BY SOURCE之间的区别:

WHEN NOT MATCHED BY SOURCE是否表示记录存在于目标中而不是在源中? - 那么我们可以删除他们?

WHEN NOT MATCHED BY TARGET - 表示记录存在于源中,但不存在于目标中?所以我们可以插入呢?

+1

匹配的行是他们的意思,但你想,当他们AREN做什么”完全匹配取决于你想达到的目标。例如记录是否存在于你的目标中,但不在你的源代码中(不匹配源代码)是否意味着你不希望它在目标表中? – ZLK

+0

基本上,如果MATCHED AND [TARGET] .IS_DELETED = 1,那么将它们标记为未删除或未匹配目标(但它们在源代码中),然后插入它们或当不匹配源和[目标]。[IS_DELETED] = 0标记为已删除 - 有意义吗? –

+1

下面是很好的示例和解释:https://technet.microsoft.com/en-us/library/bb522522(v=sql.105).aspx – Anton

回答

10

未按目标匹配 - 应该使用此子句将新行插入到目标表中。您插入表中的行是源表中的行中目标中没有匹配行的那些行。

WHEN NOT MATCHED BY SOURCE - 如果你想删除目标表中的行不会在源表