KB2929832 - PATAISYMAS: Dešimtainis tikslumas yra neteisingas, kai skaičiuojate pagal mastelio dydį „SQL Server“ 2012 arba „SQL Server“ 2014 MDS

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

Požymiai

Tarkime, kad skaitinį atributą sukuriate "Microsoft „SQL Server“ 2012" arba "„SQL Server“ 2014 „Master Data Services“" (MDS) naudodami MDS žiniatinklio tarnybą. Bandant nurodyti daugiau skaitmenų dešinėje dešimtainių skyriklių pusėje, skaičiuojamas neteisingas tikslumas.

Pavyzdžiui:
Kai bandote sukurti dešimtainį atributą su 16 skaitmenų tikslumu, darydami šiuos veiksmus:

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

Sukuriamas stulpelis, kurio skalė yra teisinga 16 ir netinkamas 22 tikslumas.

Priežastis

Ši problema kyla dėl to, kad vidinė MDS įrašyta procedūra naudoja klaidingą tikslumo skaičiavimą, kai kuriate atributą. Tikslumas yra skaičiuojamas kaip 38 atėmus skalę, o tai yra neteisinga.

Sprendimas

Problema pirmą kartą buvo išspręsta šiame kaupiamajame „SQL Server“ naujinime.

1 kaupiamasis naujinimas, skirtas „SQL Server“ 2014 /en-us/help/2931693

9 kaupiamasis naujinimas, skirtas „SQL Server“ 2012 SP1 /en-us/help/2931078

Apie kaupiamuosius „SQL Server“ naujinimus

Kiekviename naujame „SQL Server“ kaupiamajame naujinime yra visos karštosios pataisos ir visos saugos pataisos, kurios buvo įtrauktos į ankstesnį kaupiamąjį naujinimą. Peržiūrėkite naujausius "„SQL Server“" kaupiamuosius naujinimus:

      

Sprendimo būdas

Norėdami išspręsti problemą, naudokite toliau nurodytus metodus, kurie tinka jūsų situacijai:

  • Jei naudojate "„SQL Server“ 2014", pritaikykite pataisą.
  • Jei naudojate "„SQL Server“ 2012", pakeiskite įrašytas procedūras naudodami konstantą 38 (maksimali leistina reikšmė iki „SQL Server“ 2012), o ne atimti mastelį (@DataTypeInformation ir t. t.) iš tikslumo.

Būsena

„„Microsoft““ patvirtino, kad tai yra „„Microsoft““ produktų, išvardytų dalyje „Taikoma“, problema.