KB5007039 - OPRAVA: Při čištění sledování změn se zobrazí chybové zprávy 8114 nebo 22122

Platí pro
SQL Server 2016 SQL Server 2017 on Linux SQL Server 2017 on Windows SQL Server 2016 Service Pack 3 - duplicate (do not use)

Příznaky

Po instalaci SQL Server 2016 Service Pack 3 (SP3) nebo kumulativní aktualizace SQL Server 2017 26 (CU26) a spustíte uloženou proceduru pro čištění sledování změn, sp_flush_commit_table_on_demand nebo sp_flush_CT_internal_table_on_demand, nebo pokud se spustí automatické čištění sledování změn, se zobrazí následující chybová zpráva:

Poznámka

  • Msg 8114, Level 16, State 1, Procedure sp_add_ct_history, Line LineNumber
  • Error converting data type numeric to int.

Do protokolu chyb serveru SQL Server se navíc můžou zaznamenávat následující chyby:

Poznámka

  • DateTime spidNum     Error: 22122, Severity: 16, State: 1.
  • DateTime spidNum Change Tracking autocleanup failed on side table of "table_name". Pokud chyba přetrvává, použijte sp_flush_CT_internal_table_on_demand k vyčištění záznamů s vypršenou platností z její boční tabulky.

Když na tuto chybu dojdete, automatické čištění sledování změn nemůže vyčistit položky z boční tabulky nebo tabulky syscommittab.

Příčina

SQL Server 2016 SP3 a SQL Server 2017 CU26 představily novou tabulku DBO. MSchange_tracking_history a novou uloženou proceduru sys.sp_add_ct_history, která slouží k zaznamenávání historie čištění sledování změn. Tato tabulka obsahuje sloupec cleanup_version, který je momentálně deklarovaný jako datový typ CELÁ.ČÁST. Uložená procedura sys.sp_add_ct_history má parametr @cleanup_version, který je také deklarován jako INT. V zaneprázdněném systému, který používá sledování změn, může verze čištění překročit rozsah INT v daném intervalu. Po spuštění čištění sledování změn se pak v tabulce pokusí vložit do sloupce CELÁ.ČÁST hodnotu. Tím se vygeneruje chyba popsaná v části "Příznaky".

Řešení

Tento problém je opravený v následujících kumulativních aktualizacích pro SQL Server:

Kumulativní aktualizace 27 pro SQL Server 2017

Informace o kumulativních aktualizacích pro SQL Server:

Každá nová kumulativní aktualizace pro SQL Server obsahuje všechny opravy hotfix a všechny opravy zabezpečení, které byly součástí předchozí kumulativní aktualizace. Podívejte se na nejnovější kumulativní aktualizace pro SQL Server:

Nejnovější kumulativní aktualizace pro SQL Server 2017

Informace o opravě hotfix na vyžádání:

Tento problém je opravený v následující opravě hotfix na vyžádání pro SQL Server:

Alternativní řešení

Pokud narazíte na tento problém, vraťte se k předchozímu buildu odinstalací SQL Server 2016 SP3 nebo SQL Server 2017 CU26. Společnost Microsoft tento problém aktivně prošetřuje a bude tento článek aktualizovat o další informace a pokyny, jakmile budou k dispozici.

Stav

Společnost Microsoft potvrdila, že se jedná o problém produktů Microsoft, které jsou uvedeny v sekci Platí pro.

Reference

Podívejte se na informace o terminologii, kterou společnost Microsoft používá k popisování aktualizací softwaru.