症状
假设你使用 MERGE 语句查明源中不匹配的行数,并将行存储在一个局部变量中,如下所示:
声明 @NotMatchedBySource INT = 0;
合并 TargetTable 使用 SourceTable TargetTable.id = SourceTable 与源相匹配,则更新 SET @NotMatchedBySource = @NotMatchedBySource + 1;
打印 @NotMatchedBySource;转向
在这种情况下,你可能会注意到,在 MERGE 语句后 @NotMatchedBySource 的值可能不反映与源不匹配的实际行数。
状态
Microsoft 已经确认这是一个列于“适用范围”部分的 Microsoft 产品问题。
解决方案
此问题已在 SQL Server 的以下累积更新中修复
关于 SQL Server 的累积更新:
SQL Server 的每个新的累积更新均包含以前的累积更新中包含的所有修补程序和所有安全修补程序。 查看 SQL Server 的最新累积更新:
参考
了解 terminology Microsoft 用于描述软件更新的术语。