Sintomas
Suponha que você execute o procedimento armazenado sp_describe_undeclared_parameters no Microsoft SQL Server 2014 ou SQL Server 2012. Quando o parâmetro não declarado tem como alvo uma coluna decimal e é calculado com um número inteiro, o procedimento armazenado devolve um resultado incorreto que considera o parâmetro como um número inteiro.
Observação O procedimento armazenado é chamado internamente pelo driver ODBC quando você chama a função ODBC SQLDescribeParam.
Resolução
O problema foi corrigido primeiro nas seguintes atualizações cumulativas do SQL Server:
- Atualização cumulativa 4 para SQL Server 2014 SP1
- Atualização cumulativa 11 para SQL Server 2014
- Atualização cumulativa 9 para SQL Server 2012 SP2
Recomendação: Instale a atualização cumulativa mais recente para o SQL Server
Cada nova atualização cumulativa para 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. Recomendamos que transfira e instale as atualizações cumulativas mais recentes para SQL Server:
- Atualização cumulativa mais recente para o SQL Server 2014 SP1
- Atualização cumulativa mais recente para o SQL Server 2014
- Atualização cumulativa mais recente para o SQL Server 2012 SP2
Solução
Para contornar esse problema, altere o tipo da coluna decimal para tipo numérico ou adicione ".0" ao final da constante inteira na expressão.
Estado
A Microsoft confirmou que se trata de um problema nos produtos Microsoft listados na secção "Aplica-se a".