Symptomen
Stel dat u een numeriek kenmerk maakt in Microsoft SQL Server 2012 of SQL Server 2014 Master Data Services (MDS) met behulp van de MDS-webservice. Wanneer u probeert meer cijfers rechts van het decimaalteken in te stellen, wordt de onjuiste nauwkeurigheid berekend. Voorbeeld: wanneer u een decimaal kenmerk met 16 cijfers wilt maken, gaat u als volgt te werk:
MetadataAttribute newAttribute = new MetadataAttribute(); newAttribute.DataType = AttributeDataType.Number; newAttribute.DataTypeInformation = 16;
Er is een kolom gemaakt met de juiste schaal van 16 en onjuiste nauwkeurigheid van 22.
Oorzaak
Het probleem treedt op omdat tijdens het maken van een kenmerk de juiste nauwkeurigheid van een door u geplaatste MDS-procedure wordt berekend. De precisie wordt berekend als 38 min de schaal, wat niet klopt.
Oplossing
Het probleem is voor het eerst opgelost in de volgende cumulatieve update van SQL Server.
Cumulatieve update 1 voor SQL Server 2014 /en-us/help/2931693
Cumulatieve update 9 voor SQL Server 2012 SP1 /en-us/help/2931078
Elke nieuwe cumulatieve update voor SQL Server bevat alle hotfixes en alle beveiligingsoplossingen die zijn opgenomen in de vorige cumulatieve update. Bekijk de nieuwste cumulatieve updates voor SQL Server:
Tijdelijke oplossing
U kunt dit probleem omzeilen door de volgende methoden te gebruiken die voor uw situatie van toepassing zijn:
-
Voor SQL Server 2014 moet u de Fix toepassen.
-
Voor SQL Server 2012 wijzigt u de opgeslagen procedures voor het gebruik van een constante waarde van 38 (maximaal toegestaan door SQL Server 2012) in plaats van de schaal af te trekken (@DataTypeInformation, enzovoort) van de precisie.
Status
Microsoft heeft bevestigd dat dit probleem zich kan voordoen in de Microsoft-producten die worden vermeld in de sectie Van toepassing op.