Symptom
När du använder SQL Server 2016 Service Pack 3 (SP3) eller SQL Server 2017 kumulativ uppdatering 26 (CU26) och du kör en sparad rensningsprocedur för spårning av ändringar, sp_flush_commit_table_on_demand eller sp_flush_CT_internal_table_on_demand,eller om automatisk rensning av spårning av ändringar körs får du följande felmeddelande:
Msg 8114, Level 16, State 1, Procedure sp_add_ct_history, Line LineNumber
Error converting data type numeric to int.
Dessutom kan följande fel vara inloggade i SQL Server felloggen:
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.
När du stöter på det här felet kan automatisk rensning av ändringar inte rensa poster från sidotabellen eller syscommittab-tabellen.
Orsak
SQL Server 2016 SP3 och SQL Server 2017 CU26 introducerade en ny tabell, dbo. MSchange_tracking_history, och en ny lagrad procedur, sys.sp_add_ct_history, för att registrera historiken för rensning av spårning av ändringar. Den här tabellen har en cleanup_versionkolumn som för närvarande är deklarerad som INT-datatyp. Den sys.sp_add_ct_history lagrade proceduren har en parameter, @cleanup_versionparameter, som också deklareras som INT. I ett upptaget system som använder spårning av ändringar kan rensningsversionen korsa ett intervall med INT i ett givet intervall. När rensningen av ändringar sedan körs försöker den infoga ett BIGINT-värde i kolumnen HELT RUM i den här tabellen. Detta genererar det fel som beskrivs i avsnittet "Symptom".
Lösning
Det här problemet är åtgärdat i följande kumulativa uppdateringar för SQL Server:
Kumulativ uppdatering 27 för SQL Server 2017
Varje ny kumulativ uppdatering för SQL Server innehåller alla snabbkorrigeringar och alla säkerhetskorrigeringar som ingick i den föregående kumulativa uppdateringen. Kolla in de senaste kumulativa uppdateringarna för SQL Server:
Snabbkorrigeringsinformation på begäran:
Det här problemet är åtgärdat i följande snabbkorrigering på begäran för SQL Server:
Lösning
Om du stöter på det här problemet återgår du till föregående version genom att avinstallera SQL Server 2016 SP3 eller SQL Server 2017 CU26. Microsoft undersöker aktivt det här problemet och kommer att uppdatera den här artikeln med mer information och ytterligare vägledning när informationen är tillgänglig.
Status
Microsoft har bekräftat att det är ett problem i de Microsoft-produkter som listas i avsnittet "Gäller för".
Referenser
Läs mer om terminologin som Microsoft använder för att beskriva programuppdateringar.