Simptome
După ce aplicați SQL Server 2016 service pack 3 (SP3) sau SQL Server 2017 actualizarea cumulativă 26 (CU26) și rulați o procedură de curățare a modificărilor stocată, sp_flush_commit_table_on_demand sau sp_flush_CT_internal_table_on_demandsau, dacă rulează urmărirea automată a curățarii automate, primiți următorul mesaj de eroare:
Msg 8114, Level 16, State 1, Procedure sp_add_ct_history, Line LineNumber
Error converting data type numeric to int.
În plus, este posibil ca următoarele erori să fie înregistrate în SQL Server de erori:
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.
După ce întâmpinați această eroare, modificarea ce urmăresc curățarea automată nu poate curăța intrările din tabelul lateral sau tabelul tabel syscommittab.
Cauză
SQL Server 2016 SP3 și SQL Server 2017 CU26 au introdus un nou tabel, dbo. MSchange_tracking_historyși o procedură stocată nouă, sys.sp_add_ct_history, pentru a înregistra istoricul de curățare a urmăririi modificărilor. Acest tabel are o coloană, cleanup_version, care este declarată în prezent tip de date INT. Procedura sys.sp_add_ct_history stocată 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 intersecta o zonă de INT într-un anumit interval de timp. Apoi, atunci când rulează curățarea urmăririi modificărilor, va încerca să inserează 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
Fiecare actualizare cumulativă nouă 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:
Informații de remediere rapidă la cerere:
Această problemă este remediată în următoarea remediere rapidă la cerere pentru SQL Server:
Soluție de evitare
Dacă întâmpinați această problemă, reveniți la versiunea anterioară dezinstalând SQL Server 2016 SP3 sau SQL Server 2017 CU26. Microsoft investighează în mod activ această problemă și va actualiza acest articol cu mai multe informații și instrucțiuni suplimentare atunci când informațiile sunt disponibile.
Stare
Microsoft a confirmat că aceasta este o problemă în produsele Microsoft enumerate în secțiunea „Se aplică la”.
Referințe
Aflați despre terminologia utilizată de Microsoft pentru a descrie actualizările de software.