Encontrei um estouro aritmético em uma instrução SELECT simples. A consulta foi como abaixo, por exemplo
SELECT [SaleValue] FROM Sales
[SaleValue]era do tipo de dados decimal(9,0)e não uma coluna computada.
O motivo disso aconteceu porque, de alguma forma, a coluna tinha uma linha em que esse campo estava armazenando um valor MAIS GRANDE que o tipo de dados especificado, por exemplo decimal(10,0).
Só consegui que o select funcionasse quando aumentava o tamanho da coluna. A tabela em questão possui outras duas instâncias em outras duas colunas e linhas.
Como essa situação foi possível? Como um valor fora do intervalo foi salvo na coluna em primeiro lugar?
Estou usando o Microsoft SQL Server + esta é uma tabela base, não uma exibição.
decimal- um decimal(9,0)deve ocupar 5 bytes, um decimal(10,0)9. Portanto, acho que é menos provável que você possa fazer isso editando as tabelas do sistema, pois não terá o tamanho de armazenamento correto para os dados em cada linha.