Symptome
Nachdem Sie SQL Server 2016 Service Pack 3 (SP3) oder SQL Server 2017 Kumulatives Update 26 (CU26) installiert und eine gespeicherte Prozedur für die Bereinigung der Änderungsverfolgung sp_flush_commit_table_on_demand oder sp_flush_CT_internal_table_on_demand ausgeführt haben, oder wenn die automatische Bereinigung der Änderungsverfolgung ausgeführt wird, erhalten Sie die folgende Fehlermeldung:
Hinweis
- Msg 8114, Level 16, State 1, Procedure sp_add_ct_history, Line LineNumber
- Error converting data type numeric to int.
Darüber hinaus können die folgenden Fehler im SQL Server Fehlerprotokoll protokolliert werden:
Hinweis
- DateTime spidNum Error: 22122, Severity: 16, State: 1.
- DateTime spidNum Änderungsnachverfolgung automatische Bereinigung auf der Seitentabelle von "table_name" fehlgeschlagen. Wenn der Fehler weiterhin besteht, verwenden Sie sp_flush_CT_internal_table_on_demand, um abgelaufene Datensätze über die Seitentabelle zu sauber.
Nachdem dieser Fehler aufgetreten ist, kann die automatische Bereinigung der Änderungsnachverfolgung keine Einträge aus der Seitentabelle oder der syscommittab-Tabelle sauber bereinigen.
Ursache
Mit SQL Server 2016 SP3 und SQL Server 2017 CU26 wurde die Tabelle dbo neu eingeführt. MSchange_tracking_history und eine neue gespeicherte Prozedur, sys.sp_add_ct_history, um den Verlauf der Bereinigung der Änderungsverfolgung aufzuzeichnen. Diese Tabelle enthält eine Spalte, cleanup_version, die derzeit als INT-Datentyp deklariert ist. Die gespeicherte Prozedur sys.sp_add_ct_history hat einen Parameter, @cleanup_version, der auch als INT deklariert ist. Auf einem ausgelasteten System, das Änderungsnachverfolgung verwendet, kann die Bereinigungsversion in einem bestimmten Intervall einen INT-Bereich überschreiten. Wenn dann die Bereinigung der Änderungsverfolgung ausgeführt wird, wird versucht, einen BIGINT-Wert in die INT-Spalte dieser Tabelle einzufügen. Dadurch wird der im Abschnitt "Symptome" beschriebene Fehler generiert.
Lösung
Dieses Problem wurde in den folgenden kumulativen Updates für SQL Server behoben:
Kumulatives Update 25 für SQL Server 2017 (Build 26396)
Informationen zu kumulativen Updates für SQL Server:
Jedes neue kumulative Update für SQL Server enthält alle Hotfixes und Sicherheitsfixes, die im vorherigen kumulativen Update enthalten waren. Sehen Sie sich die neuesten kumulativen Updates für SQL Server an:
Neuestes kumulative Update für SQL Server 2017
Informationen zu On-Demand-Hotfix:
Dieses Problem wird durch folgenden On-Demand-Hotfix für SQL Server behoben:
Problemumgehung
Wenn dieses Problem auftritt, rückgängig machen Sie den vorherigen Build zurück, indem Sie SQL Server 2016 SP3 oder SQL Server 2017 CU26 deinstallieren. Microsoft untersucht dieses Problem aktiv und wird diesen Artikel aktualisieren, wenn diese Informationen und zusätzliche Anleitungen verfügbar sind.
Status
Microsoft hat bestätigt, dass dies ein Problem bei den Microsoft-Produkten ist, die im Abschnitt „Gilt für“ aufgeführt sind.
Referenzmaterial
Informieren Sie sich über die Terminologie, die Microsoft zum Beschreiben von Softwareupdates verwendet.