Ознаки
Після застосування SQL Server сукупного пакета оновлень 3 (SP3) або пакета оновлень 26 (SP3) або 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". 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 із пакетом оновлень 3 (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:
Інші способи вирішення
Якщо у вас виникли проблеми, повернутися до попередньої збірки, видаливши пакет оновлень 3 (SP3) або SQL Server 2016 із пакетом оновлень 3 (SP3) або SQL Server CU26. Корпорація Майкрософт активно вивчає цю проблему та оновить цю статтю докладними відомостями та додатковими порадами, коли вони з'являться.
Стан
Корпорація Майкрософт підтверджує, що це проблема в продуктах Microsoft, перелічених у розділі "Стосується".
Посилання
Дізнайтеся про термінологію, яку корпорація Майкрософт використовує для опису оновлень програмного забезпечення.