【问题标题】:TSQL Merge Not MatchedTSQL 合并不匹配
【发布时间】:2012-03-05 22:57:26
【问题描述】:

如果我的源中有多个行与我的目标不匹配,并且插入一个会导致匹配(并且如果它存在会导致没有 NOT MATCHED),我是否可以安全地假设所有会合并吗?也就是说,源中将要合并的记录在添加之前被识别并注定要合并?这就是它的工作原理,下面没有任何内容与之相矛盾,但我不确定这是一个明确的保证。

Johnny Microsoft says:

当不匹配时[按目标]然后

Specifies that a row is inserted into target_table for every row returned by

ON 不 匹配 target_table 中的一行,但满足额外的搜索 条件(如果存在)。要插入的值由 子句。 MERGE 语句只能有一个 WHEN NOT MATCHED 子句。

【问题讨论】:

    标签: sql-server-2008 tsql


    【解决方案1】:

    合并扫描每一行,它只通过数据。因此,所有在语句执行时满足 WHEN MATCHED 子句的记录都会受到影响,只有在语句执行时满足 WHEN NOT MATCHED 子句的记录才会受到影响。

    【讨论】:

    • 谢谢,接受答案,您是否找到任何文档或您只是知道?
    • 这既是我的经验,也是我多年来阅读的内容。在merge语句上有一个关于SQLAuthority的博客,它指出你可以在执行计划中看到“执行次数”和受影响的行数等......blog.sqlauthority.com/2010/06/08/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-15
    • 1970-01-01
    • 1970-01-01
    • 2019-07-07
    • 2021-01-29
    • 1970-01-01
    相关资源
    最近更新 更多