Symptomy
Po zastosowaniu programu SQL Server 2016 z dodatkiem Service Pack 3 (SP3) lub SQL Server 2017, aktualizacja skumulowana 26 (CU26) i uruchomieniu procedury składowanej oczyszczania śledzenia zmian (sp_flush_commit_table_on_demand lub sp_flush_CT_internal_table_on_demand)lub po uruchomieniu automatycznego śledzenia zmian jest wyświetlany następujący komunikat o błędzie:
Msg 8114, Level 16, State 1, Procedure sp_add_ct_history, Line LineNumber
Error converting data type numeric to int.
Ponadto w dzienniku błędów mogą być rejestrowane SQL Server błędów:
DateTime spidNum Error: 22122, Severity: 16, State: 1.
DateTime spidNum Change Tracking autocleanup failed on side table of "table_name". If the failure persists, use sp_flush_CT_internal_table_on_demand to clean up expired records from its side table.
Po napotkaniu tego błędu automatyczne śledzenie zmian nie może oczyścić wpisów z tabeli bocznej lub tabeli syscommittab.
Przyczyna
SQL Server 2016 z dodatkiem SP3 SQL Server 2017 CU26 wprowadzono nową tabelę dbo. MSchange_tracking_historyi nową procedurę składowaną sys.sp_add_ct_history, aby zarejestrować historię oczyszczania śledzenia zmian. Ta tabela zawiera kolumnę o cleanup_version, która jest obecnie deklarowana jako typ danych ZAO INT. Procedura sys.sp_add_ct_history ma parametr @cleanup_version, który jest również deklarowany jako ZAO INT. W przypadku zajętych systemów, w których jest używane śledzenie zmian, wersja oczyszczania może w danym interwale przejść przez zakres funkcji ZAO INT. Następnie, gdy zostanie uruchomiony oczyszczanie śledzenia zmian, spróbuje wstawić wartość BIGINT w kolumnie INT tej tabeli. Zostanie wygenerowany błąd opisany w sekcji "Objawy".
Rozwiązanie
Ten problem został rozwiązany w następujących aktualizacjach skumulowanych dla SQL Server:
Aktualizacja skumulowana 27 dla SQL Server 2017
Każda nowa aktualizacja skumulowana SQL Server zawiera wszystkie poprawki i wszystkie poprawki zabezpieczeń, które zostały uwzględnione w poprzedniej aktualizacji skumulowanej. Zapoznaj się z najnowszymi aktualizacjami skumulowanymi dla SQL Server:
Informacje o poprawce na żądanie:
Ten problem został rozwiązany w następującej poprawce na żądanie dla systemu SQL Server:
Obejście
Jeśli wystąpi ten problem, powróć do poprzedniej kompilacji, odinstalując dodatek SQL SERVER 2016 z dodatkiem SP3 lub SQL Server 2017 CU26. Firma Microsoft aktywnie bada ten problem i zaktualizuje ten artykuł, aby uzyskać więcej informacji i dodatkowe wskazówki, gdy te informacje będą dostępne.
Stan
Firma Microsoft potwierdziła, że jest to problem w produktach firmy Microsoft wymienionych w sekcji "Dotyczy".
Informacje
Dowiedz się więcej o terminologii używanej przez firmę Microsoft do opisywania aktualizacji oprogramowania.