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

Assuma que cria um atributo numérico no Microsoft SQL Server 2012 ou NO SQL Server 2014 Master Data Services (MDS) utilizando o Serviço Web MDS. Quando se tenta especificar mais dígitos para o lado direito dos pontos decimais, calcula-se a precisão incorreta. Por exemplo: Quando se tenta criar um atributo decimal que tenha 16 dígitos de precisão fazendo:

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

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

Causa

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

Cada nova atualização cumulativa do SQL Server contém todos os hotfixes e todas as correções de segurança que foram incluídas com a atualização cumulativa anterior. Confira as últimas atualizações cumulativas do SQL Server:

Solução

Para contornar a questão, utilize os seguintes métodos que são apreciados pela sua situação:

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

  • Para o SQL Server 2012, altere os procedimentos armazenados para utilizar um valor constante de 38 (máximo permitido pelo SQL Server 2012) em vez de uma escala subtraída (@DataTypeInformation, e assim por diante) a partir da Precisão.

Estado

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

Precisa de mais ajuda?

Quer mais opções?

Explore os benefícios da subscrição, navegue em cursos de formação, saiba como proteger o seu dispositivo e muito mais.