תופעות
נניח שברשותך טבלת Microsoft SQL Server המכילה אינדקס אחד או יותר שנבנה עליו. כאשר אתה מבצע שאילתה על הטבלה, SQL Server עשוי לבצע מרווח נתונים לא עקבי עבור תווים ועמודות בינאריות. אופן הפעולה הבלתי עקבי של החזרה המדומה של הערכים הריקים בסוף העמודה CHAR והנתונים הבינאריים תלוי בתנאים הבאים:
-
ההגדרות של הANSI_PADDING כאשר העמודות נוצרות בטבלת SQL Server.
-
ההחלטה לבצע סריקת טבלאות או חיפושי אינדקס בעמודות.
סיבה
בתרחישים מסוימים, SQL Server עשוי לבצע מיטוב המאפשר לו לעקוף פעולות רבות למסירת נתונים מהירה יותר. הבעיה מתרחשת מאחר ש-SQL Server אינו מזהה שאין אפשרות להחיל את המיטוב עבור התרחיש לעיל.
מידע נוסף
אופן פעולה זה של SQL Server אינו תואם לאופן הפעולה המתועד במאמר הבא: שימוש בנתוני Char ו-Varchar.
אם ANSI_PADDING מופעלת כאשר עמודה תו NULL נוצרת, היא מתנהגת כמו עמודת char NOT NULL: הערכים מרופדים בצורה נכונה לגודל העמודה. אם ANSI_PADDING מבוטלת כאשר נוצרת עמודת char NULL, היא מתנהגת כמו עמודה של varchar עם ANSI_PADDING מופעלת: הערכים הריקים הנגררים נחתכים.
פתרון
בעיה זו נפתרה בעדכונים המצטברים הבאים עבור SQL Server:
עדכון מצטבר 2 עבור SQL Server 2017
עדכון מצטבר 9 עבור SQL Server 2016
עדכון מצטבר 6 עבור SQL Server 2016 SP1
כל עדכון מצטבר חדש עבור SQL Server מכיל את כל התיקונים החמים ואת כל תיקוני האבטחה שנכללו בעדכון המצטבר הקודם. עיין בעדכונים המצטברים האחרונים עבור SQL Server:
העדכון המצטבר האחרון עבור SQL Server 2017
מצב
Microsoft אישרה שזוהי בעיה במוצרי Microsoft המופיעים בסעיף "חל על"
הפניות
קבל מידע על המינוחשבו Microsoft משתמשת כדי לתאר עדכוני תוכנה.