Симптоми
След като приложите сборна актуализация SQL Server 2016 Service Pack 3 (SP3) или сборна актуализация 26 SQL Server 2017 г. (CU26) и изпълните съхранена процедура за изчистване на проследяването на промените sp_flush_commit_table_on_demand или sp_flush_CT_internal_table_on_demand или ако се изпълни автоматичното изчистване на проследяването на промени, получавате следното съобщение за грешка:
Забележка
- Msg 8114, Level 16, State 1, Procedure sp_add_ct_history, Line LineNumber
- Error converting data type numeric to int.
Освен това следните грешки може да бъдат регистрирани в регистрационния файл за грешки на SQL Server:
Забележка
- DateTime spidNum Error: 22122, Severity: 16, State: 1.
- DateTime spidNum Change Tracking autocleanup failed on side table of "table_name". Ако грешката продължава, използвайте sp_flush_CT_internal_table_on_demand, за да изчистите записите с изтекъл срок от страничната таблица.
След като се натъкнете на тази грешка, автоматичното изчистване на проследяването на промените не може да изчисти записи от страничната таблица или таблицата syscommittab.
Причина
SQL Server 2016 SP3 и SQL Server 2017 CU26 представиха нова таблица, dbo. MSchange_tracking_history и нова съхранена процедура sys.sp_add_ct_history за записване на хронологията на почистването на проследяването на промени. Тази таблица има колона cleanup_version, която в момента се декларира като тип данни INT. sys.sp_add_ct_history съхранена процедура има параметър @cleanup_version, който също се декларира като INT. В заета система, която използва проследяване на промени, версията за почистване може да пресича обхват от INT за даден интервал. След това, когато се изпълни почистването на проследяването на промените, то ще се опита да вмъкне стойност BIGINT в колоната INT на тази таблица. Това генерира грешката, която е описана в раздел "Симптоми".
Решение
Този проблем е решен в следните кумулативни актуализации за SQL Server:
Сборна актуализация 27 за SQL Server 2017
За кумулативните актуализации за SQL Server:
Всяка нова кумулативна актуализация за SQL Server съдържа всички актуални поправки и корекции на защитата, които са били включени в предишната кумулативна актуализация. Прегледайте последните кумулативни актуализации за SQL Server:
Последна сборна актуализация за SQL Server 2017
Информация за гореща поправка при поискване:
Този проблем е решен в следната гореща корекция при поискване за SQL Server:
Заобиколно решение
Ако срещнете този проблем, върнете се към предишната компилация, като деинсталирате SQL Server 2016 SP3 или SQL Server 2017 CU26. Microsoft активно проучва този проблем и ще актуализира тази статия с повече информация и допълнителни указания, когато такива данни са налични.
Състояние
Microsoft потвърждава, че това е проблем в продуктите на Microsoft, които са изброени в раздела „Важи за“.
Справки
Научете повече относно терминологията, която Microsoft използва за описване на актуализациите на софтуера.