Problembeschreibung
Es wird davon ausgegangen, dass Sie mithilfe des MDS-Webdiensts ein numerisches Attribut in Microsoft SQL Server 2012 oder SQL Server 2014 Master Data Services (MDS) erstellen. Wenn Sie versuchen, weitere Ziffern auf der rechten Seite von Dezimalstellen anzugeben, wird die falsche Genauigkeit berechnet. Beispiel: Wenn Sie versuchen, ein Decimal-Attribut zu erstellen, das eine Genauigkeit von 16 Ziffern aufweist, gehen Sie wie folgt vor:
MetadataAttribute newAttribute = new MetadataAttribute(); newAttribute.DataType = AttributeDataType.Number; newAttribute.DataTypeInformation = 16;
Eine Spalte wird erstellt, die die richtige Skala von 16 und eine falsche Genauigkeit von 22 aufweist.
Ursache
Das Problem tritt auf, weil eine interne MDS-gespeicherte Prozedur beim Erstellen des Attributs die falsche Genauigkeits Berechnung verwendet. Die Genauigkeit wird als 38 abzüglich der Skalierung berechnet, was falsch ist.
Fehlerbehebung
Das Problem wurde zuerst im folgenden kumulativen Update von SQL Server behoben.
Kumulatives Update 1 für SQL Server 2014 /en-us/help/2931693
Kumulatives Update 9 für SQL Server 2012 SP1 /en-us/help/2931078
Jedes neue kumulative Update für SQL Server enthält alle Hotfixes und alle Sicherheitsupdates, die im vorherigen kumulativen Update enthalten waren. Schauen Sie sich die neuesten kumulativen Updates für SQL Server an:
Problemumgehung
Um das Problem zu umgehen, verwenden Sie die folgenden Methoden, die für Ihre Situation geschätzt werden:
-
Wenden Sie für SQL Server 2014 den Fix an.
-
Für SQL Server 2012 ändern Sie die gespeicherten Prozeduren so, dass Sie einen konstanten Wert von 38 (maximal zulässige Anzahl von SQL Server 2012) anstelle der Skalierung (@DataTypeInformation usw.) aus der Genauigkeit subtrahieren.
Status
Microsoft hat bestätigt, dass es sich hierbei um ein Problem bei den in diesem Artikel genannten Microsoft-Produkten handelt.