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

Symptomy

Załóżmy, że użytkownik tworzy atrybut liczbowy w programie Microsoft SQL Server 2012 lub SQL Server 2014 Master Data Services (MDS) przy użyciu usługi sieci Web usług MDS. Podczas próby określenia większej liczby cyfr po prawej stronie punktów dziesiętnych obliczana jest niepoprawna precyzja. Na przykład: podczas próby utworzenia atrybutu dziesiętnego z dokładnością do 16 cyfr możesz wykonać następujące czynności:

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

Utworzono kolumnę, która ma prawidłową skalę 16 i niepoprawną precyzją 22.

Przyczyna

Ten problem występuje, ponieważ wewnętrzna procedura składowana MDS używa niewłaściwego obliczenia precyzji podczas tworzenia atrybutu. Dokładność jest obliczana jako 38 minus Skala, która jest nieprawidłowa.

Każda nowa Zbiorcza aktualizacja programu SQL Server zawiera wszystkie poprawki i wszystkie poprawki zabezpieczeń uwzględnione w poprzedniej aktualizacji zbiorczej. Zapoznaj się z najnowszymi aktualizacjami zbiorczymi dla programu SQL Server:

Obejście

Aby obejść ten problem, Skorzystaj z następujących metod, które doceniają Twoją sytuację:

  • W przypadku programu SQL Server 2014 Zastosuj poprawkę.

  • W przypadku programu SQL Server 2012 Zmień procedury składowane, tak aby była używana stała wartość 38 (max dozwolona w programie SQL Server 2012) zamiast skali odejmowania (@DataTypeInformation itd.) od precyzji.

Stan

Firma Microsoft potwierdziła, że jest to problem występujący w produktach firmy Microsoft wymienionych w sekcji "dotyczy".

Potrzebujesz dalszej pomocy?

Chcesz uzyskać więcej opcji?

Poznaj korzyści z subskrypcji, przeglądaj kursy szkoleniowe, dowiedz się, jak zabezpieczyć urządzenie i nie tylko.