KB2929832 – RETTELSE: Decimalpræcision er forkert, når du beregner baseret på størrelsen af skalaen i SQL Server 2012 eller SQL Server 2014 MDS

Gælder for
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)

Symptomer

Antag, at du opretter en numerisk attribut i Microsoft SQL Server 2012 eller SQL Server 2014 Master Data Services (MDS) ved hjælp af MDS-webtjenesten. Når du forsøger at angive flere cifre til højre for decimaltegn, beregnes den forkerte præcision.

Det kunne f.eks. være:
Når du forsøger at oprette en decimalattribut med en præcision på 16 cifre ved at gøre følgende:

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

Der oprettes en kolonne med den korrekte skala på 16 og den forkerte præcision på 22.

Årsag

Problemet opstår, fordi en intern MDS-gemt procedure bruger den forkerte præcisionsberegning, når du opretter attributten. Præcisionen beregnes som 38 minus skalaen, hvilket er forkert.

Løsning

Problemet blev først løst i følgende kumulative opdatering af SQL Server.

Samlet opdatering 1 til SQL Server 2014 /en-us/help/2931693

Samlet opdatering 9 til SQL Server 2012 SP1 /en-us/help/2931078

Om kumulative opdateringer til SQL Server

Hver ny kumulativ opdatering til SQL Server indeholder alle de hotfixes og alle de sikkerhedsrettelser, der fulgte med den forrige kumulative opdatering. Se de seneste kumulative opdateringer til SQL Server:

      

Løsning

Du kan løse problemet ved at bruge følgende metoder, der er værdsat for din situation:

  • Anvend rettelsen for SQL Server 2014.
  • I SQL Server 2012 skal du ændre de gemte procedurer til at bruge en konstant værdi på 38 (maksimalt tilladt i SQL Server 2012) i stedet for at subtrahere skala (@DataTypeInformation osv.) fra præcisionen.

Status

Microsoft har bekræftet, at dette er et problem i de Microsoft-produkter, der er angivet i afsnittet "Gælder for".