Tôi đã gặp một tràn số học trong một câu lệnh CHỌN đơn giản. Truy vấn như dưới đây, vd
SELECT [SaleValue] FROM Sales
[SaleValue]là loại dữ liệu decimal(9,0)và không phải là một cột được tính toán.
Lý do điều này xảy ra là vì bằng cách nào đó, cột có một hàng trong đó trường này đang lưu trữ một giá trị TUYỆT VỜI hơn kiểu dữ liệu được chỉ định, ví dụ decimal(10,0).
Tôi chỉ có thể có được lựa chọn để làm việc khi tôi tăng kích thước của cột. Bảng trong câu hỏi có hai trường hợp khác trong hai cột và hàng khác.
Làm thế nào là tình huống này có thể? Làm thế nào một giá trị ngoài phạm vi được lưu trong cột ở vị trí đầu tiên?
Tôi đang sử dụng máy chủ Microsoft SQL + đây là bảng cơ sở, không phải dạng xem.
decimal- decimal(9,0)nên chiếm 5 byte, một decimal(10,0)9. Vì vậy, tôi nghĩ rằng ít có khả năng bạn có thể làm điều này thông qua chỉnh sửa các bảng hệ thống vì bạn sẽ không có kích thước lưu trữ chính xác cho dữ liệu trong mỗi hàng.