現象
MERGE ステートメントを使用して、ソースによって一致しない行の数を確認し、次のようにローカル変数に格納することを想定しています。
DECLARE
@NotMatchedBySource INT = 0;
MERGE TargetTable USING SourceTable ON TargetTable.id = SourceTable.id
ソースによって一致しない場合は、
UPDATE SET @NotMatchedBySource = @NotMatchedBySource + 1;
PRINT @NotMatchedBySource。
行く
このような状況では、MERGE ステートメントの後の @NotMatchedBySource の値に、ソースによって一致しない行の実際の数が反映されない場合があります。
状態
Microsoft は、これが "適用対象" セクションに記載されている Microsoft 製品の問題であることを確認しました。
解決策
この問題は、次の累積的な更新プログラムで修正SQL Server
SQL Serverの累積的な更新プログラムについて:
SQL Serverの各新しい累積的な更新プログラムには、すべての修正プログラムと、以前の累積的な更新プログラムに含まれていたすべてのセキュリティ修正プログラムが含まれています。 SQL Serverの最新の累積的な更新プログラムを確認してください。
参考資料
マイクロソフトでソフトウェア更新プログラムの説明に使用する用語集を参照してください。