Ho riscontrato un overflow aritmetico in una semplice istruzione SELECT. La query era come sotto es
SELECT [SaleValue] FROM Sales
[SaleValue]era di tipo dati decimal(9,0)e non una colonna calcolata.
Il motivo è stato perché in qualche modo la colonna aveva una riga in cui questo campo memorizzava un valore MAGGIORE rispetto al tipo di dati specificato, ad es decimal(10,0).
Ho potuto far funzionare la selezione solo quando ho aumentato le dimensioni della colonna. La tabella in questione ha altre due istanze in altre due colonne e righe.
Come è stata possibile questa situazione? Come è stato innanzitutto salvato un valore fuori intervallo nella colonna?
Sto usando Microsoft SQL Server + questa è una tabella di base, non una vista.
decimal- un decimal(9,0)dovrebbe occupare 5 byte, un decimal(10,0)9. Quindi penso che sia meno probabile che tu possa farlo modificando le tabelle di sistema poiché non avrai la dimensione di archiviazione corretta per i dati in ogni riga.