Rakenduskoht
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)

Sümptomid

Oletagem, et luua Microsoft SQL Server 2012 või SQL Server 2014 Master Data Services (MDS) numbriline atribuut MDS veebiteenuse abil. Kui proovite määrata kümnendkohtade paremale poolele rohkem numbreid, arvutatakse vale täpsus. Näiteks: kui proovite luua kümnendkoha atribuuti, millel on 16-kohaline täpsus, tehke järgmist.

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

Luuakse veerg, mille suurus on 16 ja vale täpsusega 22.

Põhjus

See probleem ilmneb seetõttu, et sisemine MDS salvestatud protseduur kasutab atribuudi loomisel vale täpsuse arvutust. Täpsus arvutatakse 38 miinusega, mis on vale.

Iga uus koondvärskenduses SQL Server sisaldab kõiki käigultparandused ja kõik turvaparandusi, mis kuulusid eelmise koondvärskenduse. Vaadake SQL serveri kumulatiivseid värskendusi.

Lahendus

Probleemi lahendamiseks kasutage järgmisi meetodeid, mida teie olukorras hinnatakse.

  • SQL Server 2014 korral rakendage parandus.

  • SQL Server 2012 korral muutke salvestatud protseduurid, et kasutada konstantide arvust 38 (max lubatud SQL Server 2012), selle asemel et lahutada skaalat (@DataTypeInformation jne).

Olek

Microsoft on kinnitanud, et see probleem esineb jaotises "kehtib järgmiste toodete kohta" loetletud Microsofti toodetes.

Kas vajate veel abi?

Kas soovite rohkem valikuvariante?

Siin saate tutvuda tellimusega kaasnevate eelistega, sirvida koolituskursusi, õppida seadet kaitsma ja teha veel palju muud.