Objawy
Załóżmy, że używasz instrukcji MERGE, aby dowiedzieć się, ile wierszy nie jest dopasowanych przez źródło i zapisać ją w zmiennej lokalnej w następujący sposób:
DECLARE
@NotMatchedBySource INT = 0;
MERGE TargetTable USING SourceTable ON TargetTable.id = SourceTable.id
JEŚLI NIE JEST DOPASOWANY PRZEZ ŹRÓDŁO, TO
ZESTAW AKTUALIZACJI @NotMatchedBySource = @NotMatchedBySource + 1;
WYDRUK @NotMatchedBySource;
IŚĆ
W takiej sytuacji można zauważyć, że wartość @NotMatchedBySource po instrukcji MERGE może nie odzwierciedlać rzeczywistej liczby wierszy, które nie są zgodne ze źródłem.
Stan
Firma Microsoft potwierdziła, że jest to problem dotyczący produktów firmy Microsoft wymienionych w sekcji „Dotyczy”.
Rozwiązanie
Ten problem został rozwiązany w następujących aktualizacjach zbiorczych dla programu SQL Server
Aktualizacja zbiorcza 7 dla programu SQL Server 2016 z dodatkiem SP2
Aktualizacja zbiorcza 4 dla programu SQL Server 2014 z dodatkiem SP3
Informacje o aktualizacjach zbiorczych programu SQL Server:
Każda nowa aktualizacja zbiorcza programu SQL Server zawiera wszystkie poprawki zabezpieczeń uwzględnione w poprzedniej aktualizacji skumulowanej. Sprawdź najnowsze aktualizacje zbiorcze dla programu SQL Server:
- Najnowsza aktualizacja zbiorcza w programie SQL Server 2017
- Najnowsza aktualizacja zbiorcza dla programu SQL Server 2016
- Najnowsza aktualizacja zbiorcza dla programu SQL Server 2014
Źródła informacji
Dowiedz się więcej o terminologii używanej przez firmę Microsoft do opisywania aktualizacji oprogramowania.