KB4055758 - תיקון: אופן פעולה לא עקבי עבור החזרת ערכים ריקים נגררים בסוף נתוני CHAR ו- BINARY ב- SQL Server

חל על
SQL 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 2016 Service Pack 1 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 2014 Service Pack 2 - 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

סימפטומים

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

  • הגדרות הטבלה ANSI_PADDING בעת יצירת עמודות בטבלה SQL Server.
  • ההחלטה לבצע סריקת טבלה או חיפוש אינדקס בעמודות.

גורם

בתרחישים מסוימים, SQL Server לבצע מיטוב המאפשר לו לעקוף פעולות רבות למסירת נתונים מהירה יותר. הבעיה מתרחשת מכיוון SQL Server אינו מזהה שלא ניתן להחיל את המיטוב עבור התרחיש לעיל.

מידע נוסף

אופן פעולה זה של SQL Server אינו תואם לאו אופן הפעולה התוזמן במאמר הבא: שימוש נתונים Char ו- Varchar.

הערה

אם ANSI_PADDING מופעל בעת יצירת עמודת char 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

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

עדכון מצטבר 7 עבור SQL Server 2014 SP1

אודות עדכונים מצטברים עבור SQL Server:

כל עדכון מצטבר חדש עבור SQL Server מכיל את כל התיקונים החמים ואת כל תיקוני האבטחה שנכללו בעדכון המצטבר הקודם. עיין בעדכונים המצטברים האחרונים עבור SQL Server:

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

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

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

מצב

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

חומרי עזר

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