Проблемы
После применения пакета обновления SQL Server 2016 с пакетом обновления 3 (SP3) или SQL Server 2017 накопительного обновления 26 (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". If the failure persists, use sp_flush_CT_internal_table_on_demand to clean up expired records from its side table.
После того как вы столкнетесь с этой ошибкой, изменить функцию автоматической очистки отслеживания не сможет очистить записи из боковой таблицы или таблицы 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.
Сведения о hotfix по запросу:
Эта проблема устранена в следующем исправлении по запросу для SQL Server:
Обходное решение
Если вы столкнулись с этой проблемой, вернуться к предыдущей сборке, SQL Server 2016 с sp3 или SQL Server 2017 CU26. Корпорация Майкрософт активно изучает эту проблему и будет обновлять эту статью с дополнительной информацией и дополнительными рекомендациями, когда она будет доступна.
Статус
Корпорация Майкрософт подтверждает наличие этой проблемы в своих продуктах, которые перечислены в разделе "Применяется к".
Ссылки
Узнайте о терминологии, используемой корпорацией Майкрософт для описания обновлений программного обеспечения.