Я стикався з арифметичним переповненням у простому операторі SELECT. Запит був, як показано нижче, наприклад
SELECT [SaleValue] FROM Sales
[SaleValue]був тип даних decimal(9,0)і не був обчисленим стовпцем.
Причина цього сталася через те, що якось стовпець мав рядок, де це поле зберігало значення GREATER, ніж вказаний тип даних, наприклад decimal(10,0).
Я міг заставити вибір лише для роботи, коли збільшив розмір стовпця. У відповідній таблиці є ще два екземпляри у двох інших стовпцях та рядках.
Як така ситуація була можливою? Як вперше було збережено значення поза діапазоном у стовпці?
Я використовую сервер Microsoft SQL + це основна таблиця, а не вид.
decimal- a decimal(9,0)повинна займати 5 байт, decimal(10,0)9. Тому я думаю, що це менш ймовірно, що ви могли це зробити, редагуючи системні таблиці, оскільки у вас не буде правильний розмір пам’яті для даних у кожному рядку.