Применяется к
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)

Проблемы

Предположим, что вы создали числовой атрибут в Microsoft SQL Server 2012 или SQL Server 2014 Master Data Services (MDS) с помощью веб-службы MDS. При попытке указать другие цифры справа от десятичной запятой вычислена неправильная точность. Например: при попытке создать атрибут Decimal с точностью до 16 цифр, выполнив следующие действия:

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

Создается столбец с правильным масштабом в 16 и неверной точностью 22.

Причина

Проблема возникает из-за того, что внутренняя хранимая процедура MDS использует неправильное вычисление точности при создании атрибута. Точность вычисляется как 38 минус шкала, что является неправильным.

Все новые накопительные обновления для SQL Server содержат все исправления и все исправления для системы безопасности, которые были включены в предыдущий накопительный пакет обновления. Ознакомьтесь с самыми последними накопительными обновлениями для SQL Server.

Обходное решение

Чтобы обойти эту проблему, воспользуйтесь приведенными ниже методами, которые были оценены в зависимости от ситуации.

  • В SQL Server 2014 примените исправление.

  • В SQL Server 2012 измените хранимые процедуры таким образом, чтобы они использовали постоянную величину 38 (максимально разрешенную в SQL Server 2012) вместо масштабирования масштаба (@DataTypeInformation и т. д.) из точности.

Статус

Корпорация Майкрософт подтверждает наличие этой проблемы в своих продуктах, которые перечислены в разделе "Применяется к".

Нужна дополнительная помощь?

Нужны дополнительные параметры?

Изучите преимущества подписки, просмотрите учебные курсы, узнайте, как защитить свое устройство и т. д.