KB5007039 - إصلاح: تواجه رسائل الخطأ 8114 أو 22122 عند تنفيذ عملية تنظيف تعقب التغييرات

ينطبق على
SQL Server 2016 SQL Server 2017 on Linux SQL Server 2017 on Windows SQL Server 2016 Service Pack 3 - duplicate (do not use)

الأعراض

بعد تطبيق SQL Server 2016 Service Pack 3 (SP3) أو التحديث التراكمي 26 (CU26) من SQL Server 2017، وتشغيل إجراء مخزن لتنظيف تعقب التغييرات، 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 failed autocleanup on side table of "table_name". إذا استمر الفشل، فاستخدم sp_flush_CT_internal_table_on_demand لتنظيف السجلات منتهية الصلاحية من جدولها الجانبي.

بعد مواجهة هذا الخطأ، يتعذر على التنظيف التلقائي لتعقب التغييرات تنظيف الإدخالات من الجدول الجانبي أو جدول syscommittab.

السبب

قدم SQL Server 2016 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:

التحديث التراكمي الأخير ل SQL Server 2017

معلومات الإصلاح العاجل عند الطلب:

تم إصلاح هذه المشكلة في الإصلاح العاجل التالي عند الطلب ل SQL Server:

الحل البديل

إذا واجهت هذه المشكلة، فارجع إلى الإصدار السابق عن طريق إلغاء تثبيت SQL Server 2016 SP3 أو SQL Server 2017 CU26. تقوم Microsoft بالتحقيق في هذه المشكلة بشكل نشط، وستقوم بتحديث هذه المقالة بمزيد من المعلومات والإرشادات الإضافية عند توفر هذه المعلومات.

الحالة

لقد أكدت Microsoft على أن هذه مشكلة في منتجات Microsoft المُدرجة في القسم "ينطبق على".

المراجع

تعرّف على المصطلحات التي تستخدمها Microsoft لوصف تحديثات البرامج.