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) או SQL Server 2017 עדכון מצטבר 26 (CU26), והפעלת פרוצדורה מאוחסנת של ניקוי מעקב אחר שינויים, 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 שינוי מעקב אחר שינויים ניקוי אוטומטי נכשל בטבלה צדדית של "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 SQL Server מכיל את כל התיקונים החמים ואת כל תיקוני האבטחה שנכללו בעדכון המצטבר הקודם. עיין בעדכונים המצטברים האחרונים עבור SQL Server:

העדכון המצטבר האחרון עבור SQL Server 2017

מידע על תיקונים חמים לפי דרישה:

בעיה זו נפתרה בתיקון החם הבא לפי דרישה עבור SQL Server:

פתרון

אם אתה נתקל בבעיה זו, חזור לגירסת ה- Build הקודמת על-ידי הסרת ההתקנה של SQL Server 2016 SP3 או SQL Server 2017 CU26. Microsoft חוקרת בעיה זו באופן פעיל, ותעדכן מאמר זה במידע נוסף ובהדרכה נוספת כאשר מידע זה יהיה זמין.

מצב

Microsoft אישרה שזוהי בעיה במוצרי Microsoft המפורטים בסעיף "חל על".

חומרי עזר

קבל מידע על המינוח שבו משתמשת Microsoft כדי לתאר עדכוני תוכנה.