Ознаки
Припустімо, що ви створюєте числовий атрибут у службах 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 та неправильна точність 22.
Причина
Ця проблема виникає тому, що внутрішня процедура МДС використовує неправильний підрахунок точності під час створення атрибута. Точність обчислюється як 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, перелічених у розділі "застосовується до".