KB2929832 – КОРЕКЦИЯ: Десетичната точност е неправилна, когато изчислявате на базата на размера на скалата в MDS на SQL Server 2012 или SQL Server 2014

Отнася се за
SQL Server 2012 Developer SQL Server 2012 Enterprise SQL Server 2012 Standard SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use)

Симптоми

Да предположим, че сте създали атрибут "число" в 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.

Причина

Проблемът възниква, защото вътрешна съхранена MDS процедура използва грешно изчисление с точност, когато създавате атрибута. Точността се изчислява като 38 минус мащаба, което е неправилно.

Решение

Проблемът е коригиран за първи път в следващата кумулативна актуализация на SQL Server.

Сборна актуализация 1 за SQL Server 2014 г. /bg-bg/help/2931693

Сборна актуализация 9 за SQL Server 2012 SP1 /en-us/help/2931078

За кумулативните актуализации за SQL Server

Всяка нова кумулативна актуализация за SQL Server съдържа всички актуални поправки и корекции на защитата, които са били включени в предишната кумулативна актуализация. Прегледайте последните кумулативни актуализации за SQL Server:

      

Заобиколно решение

За да заобиколите проблема, използвайте следните методи, които са ценни във вашата ситуация:

  • За SQL Server 2014 приложете корекцията.
  • За SQL Server 2012 променете съхранените процедури така, че да използват константна стойност 38 (максимум, разрешен от SQL Server 2012), вместо да изваждат мащаба (@DataTypeInformation и т.н.) от точността.

Състояние

Microsoft потвърждава, че това е проблем в продуктите на Microsoft, които са изброени в раздела „Важи за“.