Applies ToSQL Server 2016 Developer - duplicate (do not use) SQL Server 2016 Enterprise - duplicate (do not use) SQL Server 2016 Enterprise Core - duplicate (do not use) SQL Server 2016 Standard - duplicate (do not use) SQL Server 2014 Service Pack 2 - duplicate (do not use) SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Enterprise Core - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use) SQL Server 2017 Developer on Windows SQL Server 2017 Enterprise on Windows SQL Server 2017 Enterprise Core on Windows SQL Server 2017 Standard on Windows

תופעות

בעת הפעלת עדכון בטבלה הכוללת אינדקס מקובץ באשכולות או ייחודי, והעדכון מתרחש בעמודה ייחודית שאינה ראשית, רשומת המעקב אחר שינויים אינה תואמת במשפט העדכון.

לדוגמה, נניח שעמודה בשם "column1" כלולה באינדקס המקובץ באשכולות או באינדקס הייחודי. כאשר ערך העמודה משתנה מערך גדול יותר לערך קטן יותר (כגון שינוי הערך מ- 20 ל- 16), הטבלה הצדית למעקב אחר שינויים מקבלת את פעולת ההוספה לפני פעולת המחיקה. לדוגמה, פעולת רשומת השורה של הוספת יומן הטרנזקציות מתקבלת לפני פעולת מחיקת השורה, או ש- "I" נוסף לפני "D".

Sys_change_version

sys_change_create_version

sys_change_operation

sys_change_column

sys_change_context

PK_column

1116

19

אני

NULL

NULL

5639485628

1116

20

D

NULL

NULL

5639485628

כאשר ערך העמודה משתנה מערך קטן יותר לערך גדול יותר (כגון שינוי הערך מ- 16 ל- 20), "D" נוסף לפני "I".

Sys_change_version

sys_change_create_version

sys_change_operation

sys_change_column

sys_change_context

PK_column

1126

32

D

NULL

NULL

5639485628

1126

33

אני

NULL

NULL

5639485628

סיבה

בעיה זו מתרחשת עקב סדר שגוי בין זוגות מחיקה/הוספה בטבלה הצדדית למעקב אחר שינויים.

פתרון

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

         עדכון מצטבר 8 עבור SQL Server 2017

         עדכון מצטבר 9 עבור SQL Server 2016 Service Pack 1

עדכון מצטבר 12 עבור SQL Server 2014 SP2

אודות SQL Server Build

כל גירסת Build חדשה SQL Server מכילה את כל תיקוני האבטחה והתיקונים החמים שהיו בגירסת ה- Build הקודמת. מומלץ להתקין את גירסת ה- Build העדכנית ביותר עבור SQL Server:

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

גירסת ה- Build האחרונה עבור SQL Server 2016

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

מצב

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

מידע נוסף

עבור טבלה זמינה למעקב אחר שינויים, כאשר עדכון מתרחש בעמודה שאינה ראשית המוגדרת כייחודית, נוספים שני ערכים לטבלה הצדדית למעקב אחר שינויים: ערך אחד עבור כל אחת מהפעולות המפוצלות, הוספה ומחיקה.

כאשר מתבצעת קריאה לפונקציה CHANGETABLE כדי לספור את השינויים, ערכים אלה ממוינות לפי ערכי מפתח ראשי ולאחר מכן הפעולות נצברות. אם העדכון מוסיף ערך נמוך יותר, פעולת "I" מופעלת תחילה בטבלה הצדדית ואחריה פעולת "D". פעולה זו גורמת לחזרה של פעולה שגויה עבור שורה זו. זאת משום ש- "I" אחרי "D" נצבר כ- "D".

מאחר שרק ערכי המפתח הראשי נשמרים בטבלאות הצדדיות, אין צורך בשני ערכים נפרדים. הדבר נכון כל עוד עמודת המפתח הראשי אינה מתעדכנת.

בעיה זו נפתרה עבור עמודות ייחודיות שאינן ראשיות. במקרה זה, כאשר העדכון מתרחש, תתווסף שורה אחת בלבד על-ידי הוספת "U" לפעולת עדכון במקום שני ערכים עם "D" ו- "I".

הפניות

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

זקוק לעזרה נוספת?

מעוניין באפשרויות נוספות?

גלה את יתרונות המנוי, עיין בקורסי הדרכה, למד כיצד לאבטח את המכשיר שלך ועוד.

קהילות עוזרות לך לשאול שאלות ולהשיב עליהן, לתת משוב ולשמוע ממומחים בעלי ידע עשיר.