KB2929832 - CORRECÇÃO: A precisão decimal está incorreta quando você calcula com base no tamanho da escala no MDS do SQL Server 2012 ou SQL Server 2014

Aplica-se a
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)

Sintomas

Suponha que você crie um atributo Numérico no Microsoft SQL Server 2012 ou no SQL Server 2014 Master Data Services (MDS) usando o Serviço Web MDS. Quando você tenta especificar mais dígitos à direita dos pontos decimais, a precisão incorreta é calculada.

Por exemplo:
Quando você tenta criar um atributo decimal com precisão de 16 dígitos fazendo:

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

É criada uma coluna que tem a Escala correta de 16 e a Precisão incorreta de 22.

Causa

O problema ocorre porque um procedimento armazenado interno do MDS usa o cálculo de precisão incorreto quando você cria o atributo. A precisão é calculada como 38 menos a escala, o que está incorreto.

Resolução

O problema foi corrigido pela primeira vez na atualização cumulativa seguinte do SQL Server.

Atualização cumulativa 1 para SQL Server 2014 /pt-br/help/2931693

Atualização cumulativa 9 para SQL Server 2012 SP1 /en-us/help/2931078

Sobre atualizações cumulativas para o SQL Server

Cada nova atualização cumulativa do SQL Server contém todos os hotfixes e todas as correções de segurança incluídas na atualização cumulativa anterior. Confira as atualizações cumulativas mais recentes para o SQL Server:

      

Solução alternativa

Para contornar o problema, use os seguintes métodos que são apreciados para sua situação:

  • Para o SQL Server 2014, aplique a correção.
  • Para SQL Server 2012, altere os procedimentos armazenados para usar um valor constante de 38 (máximo permitido pelo SQL Server 2012) em vez de subtrair escala (@DataTypeInformation e assim por diante) da Precisão.

Status

A Microsoft confirmou que este é um problema nos produtos da Microsoft listados na seção "Aplica-se a".