KB2929832 – OPRAVA: Při výpočtu na základě velikosti měřítka v MDS SQL Server 2012 nebo SQL Server 2014 je desetinná přesnost nesprávná

Platí pro
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)

Příznaky

Předpokládejme, že v Microsoft SQL Server 2012 nebo SQL Server 2014 Master Data Services (MDS) vytvoříte číselný atribut pomocí webové služby MDS. Pokud se pokusíte zadat více číslic napravo od desetinné čárky, bude vypočítána nesprávná přesnost.

Příklady:
Když se pokoušíte vytvořit atribut decimal s přesností na 16 číslic, postupujte následovně:

MetadataAttribute newAttribute = new MetadataAttribute(); 
newAttribute.DataType = AttributeDataType.Number; 
newAttribute.DataTypeInformation = 16;

Vytvoří se sloupec se správným měřítkem 16 a nesprávnou přesností 22.

Příčina

K tomuto problému dochází, protože interní uložená procedura MDS používá při vytváření atributu nesprávný výpočet přesnosti. Přesnost se vypočítá jako 38 minus stupnice, což není správně.

Řešení

Tento problém byl poprvé opraven v následující kumulativní aktualizaci SQL Server.

Kumulativní aktualizace 1 pro SQL Server 2014 /en-us/help/2931693

Kumulativní aktualizace 9 pro SQL Server 2012 SP1 /en-us/help/2931078

Informace o kumulativních aktualizacích pro SQL Server

Každá nová kumulativní aktualizace pro SQL Server obsahuje všechny opravy hotfix a všechny opravy zabezpečení, které byly součástí předchozí kumulativní aktualizace. Podívejte se na nejnovější kumulativní aktualizace pro SQL Server:

      

Alternativní řešení

Problém vyřešíte pomocí následujících metod, které můžete pro vaši situaci ocenit:

  • Pro SQL Server 2014 použijte opravu.
  • Pro SQL Server 2012 změňte uložené procedury tak, aby používaly konstantu 38 (maximum povolenou SQL Server 2012) místo odečítání měřítka (@DataTypeInformation atd.) od přesnosti.

Stav

Společnost Microsoft potvrdila, že se jedná o problém produktů Microsoft, které jsou uvedeny v sekci Platí pro.