Příznaky
Předpokládejme, že jste vytvořili číselný atribut v Microsoft SQL serveru 2012 nebo SQL Server 2014 Master Data Services (MDS) pomocí webové služby MDS. Když se pokusíte zadat více číslic na pravou stranu desetinných bodů, vypočte se nesprávná přesnost. Například: když se pokusíte vytvořit desítkový atribut s přesností 16 číslic, postupujte takto:
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 při vytváření atributu používá vnitřní uložená procedura MDS nesprávný výpočet přesnosti. Přesnost se vypočítá jako 38 mínus stupnice, která je nesprávná.
Řešení
Tento problém byl poprvé opraven následující kumulativní aktualizací SQL serveru.
Kumulativní aktualizace 1 pro SQL Server 2014 /en-us/help/2931693
Kumulativní aktualizace 9 pro SQL Server 2012 SP1 /en-us/help/2931078
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 SQL serveru:
Alternativní řešení
Pokud chcete tento problém vyřešit, použijte následující metody, které jsou vám k dispraxi:
-
Pro SQL Server 2014 použijte opravu.
-
V systému SQL Server 2012 změňte uložené procedury tak, aby bylo možné použít konstantní hodnotu 38 (od maximálního povoleného serverem SQL Server 2012) místo rozdílové velikosti (@DataTypeInformation atd.).
Stav
Společnost Microsoft potvrzuje, že se jedná o problém v produktech této společnosti, které jsou uvedeny v části Informace v tomto článku jsou určeny pro produkt.