Simptome
După ce aplicați SQL Server 2016 Service Pack 3 (SP3) sau SQL Server 2017 Cumulative Update 26 (CU26) și rulați o procedură stocată de curățare urmărire a modificărilor, sp_flush_commit_table_on_demand sau sp_flush_CT_internal_table_on_demand, sau dacă rulează curățarea automată de urmărire a modificărilor, primiți următorul mesaj de eroare:
Notă
- Msg 8114, Level 16, State 1, Procedure sp_add_ct_history, Line LineNumber
- Error converting data type numeric to int.
În plus, este posibil să fie înregistrate următoarele erori în jurnalul de erori SQL Server:
Notă
- DateTime spidNum Error: 22122, Severity: 16, State: 1.
- DateTime spidNum Change Tracking autocleanup failed on side table of "table_name". Dacă eroarea persistă, utilizați sp_flush_CT_internal_table_on_demand pentru a curăța înregistrările expirate din tabelul său lateral.
După ce întâmpinați această eroare, Change tracking Automatic cleanup nu poate curăța intrările din tabelul lateral sau din tabelul syscommittab.
Cauză
SQL Server 2016 SP3 și SQL Server 2017 CU26 au introdus un nou tabel, dbo. MSchange_tracking_history și o nouă procedură stocată, sys.sp_add_ct_history, pentru a înregistra istoricul curățării urmăririi modificărilor. Acest tabel are o coloană, cleanup_version, care este declarată în prezent ca tip de date INT. Procedura stocată sys.sp_add_ct_history are un parametru, @cleanup_version, care este, de asemenea, declarat ca INT. Într-un sistem ocupat care utilizează urmărirea modificărilor, versiunea de curățare poate traversa un interval INT într-un interval dat. Apoi, când rulează curățarea urmăririi modificărilor, va încerca să insereze o valoare BIGINT în coloana INT a acestui tabel. Aceasta generează eroarea descrisă în secțiunea "Simptome".
Rezolvare
Această problemă este remediată în următoarele actualizări cumulative pentru SQL Server:
Actualizarea cumulativă 27 pentru SQL Server 2017
Despre actualizările cumulative pentru SQL Server:
Fiecare actualizare cumulativă nouă pentru SQL Server conține toate remedierile rapide și toate remedierile de securitate care au fost incluse cu actualizarea cumulativă anterioară. Consultați cele mai recente actualizări cumulative pentru SQL Server:
Cea mai recentă actualizare cumulativă pentru SQL Server 2017
Informații despre remedierea rapidă la cerere:
Această problemă este remediată în următoarea remediere rapidă la cerere pentru SQL Server:
Soluție
Dacă întâmpinați această problemă, reveniți la compilarea anterioară dezinstalând SQL Server 2016 SP3 sau SQL Server 2017 CU26. Microsoft investighează activ această problemă și va actualiza acest articol cu mai multe informații și instrucțiuni suplimentare atunci când aceste informații vor fi disponibile.
Stare
Microsoft a confirmat că aceasta este o problemă în produsele Microsoft care sunt listate în secțiunea „Se aplică la”.
Referințe
Aflați despre terminologia pe care o utilizează Microsoft pentru a descrie actualizările de software.