תופעות
נניח שאתה יוצר תכונה מספרית ב-Microsoft SQL Server 2012 או ב-SQL Server 2014 Master Data Services (MDS) באמצעות שירות האינטרנט של MDS. כאשר אתה מנסה לציין ספרות נוספות לצד השמאלי של נקודות עשרוניות, הדיוק השגוי מחושב. לדוגמה: כאשר אתה מנסה ליצור תכונה עשרונית המכילה 16 ספרות דיוק על-ידי ביצוע הפעולות הבאות:
MetadataAttribute newAttribute = new MetadataAttribute(); newAttribute.DataType = AttributeDataType.Number; newAttribute.DataTypeInformation = 16;
נוצרת עמודה המכילה את הקנה המידה הנכון של 16 ו-Precision השגויה של 22.
סיבה
הבעיה מתרחשת מאחר שהליך מאוחסן פנימי של MDS משתמש בחישוב דיוק שגוי בעת יצירת התכונה. הדיוק מחושב כ-38 מינוס הקנה מידה, שהוא שגוי.
פתרון
הבעיה נפתרה לראשונה בעדכון המצטבר הבא של SQL Server.
עדכון מצטבר 1 עבור SQL Server 2014 /en-us/help/2931693
עדכון מצטבר 9 עבור SQL Server 2012 SP1 /en-us/help/2931078
כל עדכון מצטבר חדש עבור SQL Server מכיל את כל התיקונים החמים ואת כל תיקוני האבטחה שנכללו בעדכון המצטבר הקודם. עיין בעדכונים המצטברים האחרונים עבור SQL Server:
פתרון
כדי לעקוף את הבעיה, השתמש בשיטות הבאות שמעריכים את המצב שלך:
-
עבור SQL Server 2014, החל את התיקון.
-
עבור SQL Server 2012, שנה את ההליכים המאוחסנים לשימוש בערך קבוע של 38 (מקסימום המותר על-ידי SQL Server 2012) במקום להחסיר קנה מידה (@DataTypeInformation וכן הלאה) מתוך הדיוק.
מצב
Microsoft אישרה שזוהי בעיה במוצרי Microsoft המופיעים בסעיף "חל על".