Applies ToSQL 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 de pontos decimais, a precisão incorreta é calculada. Por exemplo: quando você tenta criar um atributo decimal com precisão de 16 dígitos, fazendo o seguinte:

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

Uma coluna que tem a escala correta de 16 e a precisão incorreta de 22 é criada.

Causa

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

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 do SQL Server:

Solução alternativa

Para contornar o problema, use os seguintes métodos que apreciam a sua situação:

  • Para o SQL Server 2014, aplique a correção.

  • Para o SQL Server 2012, altere os procedimentos armazenados para usar um valor constante de 38 (Max permitido pelo SQL Server 2012) em vez da escala de subtração (@DataTypeInformation e assim por diante) da precisão.

Status

A Microsoft confirmou que este é um problema nos produtos Microsoft listados na seção "Aplicável a".

Precisa de mais ajuda?

Quer mais opções

Explore os benefícios da assinatura, procure cursos de treinamento, saiba como proteger seu dispositivo e muito mais.

As comunidades ajudam você a fazer e responder perguntas, fazer comentários e ouvir especialistas com conhecimento avançado.