Sümptomid
Oletagem, et loote arvuline atribuut Microsoft SQL Server 2012 või SQL Server 2014 Master Data Services (MDS) kasutades MDS veebiteenus. Kui proovite komakohtadest paremale määrata rohkem numbreid, arvutatakse vale täpsus.
Siin on mõned näited.
Kui proovite luua kümnendkoha atribuuti, mille täpsus on 16 kohta, tehke järgmist.
MetadataAttribute newAttribute = new MetadataAttribute();
newAttribute.DataType = AttributeDataType.Number;
newAttribute.DataTypeInformation = 16;
Luuakse veerg, mille õige skaala on 16 ja vale täpsus 22.
Põhjus
Probleem ilmneb, sest sisemine MDS salvestatud protseduur kasutab vale täpsuse arvutust atribuudi loomisel. Täpsus arvutatakse kui 38 miinus skaala, mis on vale.
Lahendus
Probleem lahendati esmalt järgmises SQL Server koondvärskenduses.
SQL Server 2014 koondvärskendus 1 /en-us/help/2931693
SQL Server 2012 SP1 koondvärskendus 9 /en-us/help/2931078
Teave SQL Server koondvärskenduste kohta
Iga uus koondvärskendus SQL Server sisaldab kõiki kiirparandusi ja kõiki turbeparandusi, mis olid kaasatud eelmise koondvärskenduse. Vaadake uusimaid SQL Server koondvärskendusi.
Ajutine lahendus
Probleemi lahendamiseks kasutage järgmisi meetodeid, mis on teie olukorra jaoks hinnatud.
- SQL Server 2014 korral rakendage parandus.
- Versioonis SQL Server 2012 muutke salvestatud toiminguid, et skaala (@DataTypeInformation jne) täpsusest lahutamise asemel kasutataks konstantset väärtust 38 (maksimaalne lubatud SQL Server 2012).
Olek
Microsoft on kinnitanud, et see on jaotises „Rakenduskoht“ loetletud Microsofti toodete korral esinev probleem.