Арифметическое переполнение на сумму столбца в сервере SQL - PullRequest
20 голосов
/ 03 августа 2009

Я пытаюсь получить общее количество столбцов, но когда я запускаю этот запрос, я получаю следующую ошибку. Любой совет?

SELECT SUM(Size) as total
FROM  AllDocs
Where DirName LIKE 'sites/test/test%'


ERROR:
Msg 8115, Level 16, State 2, Line 1
Arithmetic overflow error converting expression to data type int.
Warning: Null value is eliminated by an aggregate or other SET operation.

1 Ответ

37 голосов
/ 03 августа 2009

В то время как все ваши размеры могут вписаться в INT (до 2^31 - 1), их SUM не может.

Измените их на BIGINT:

SELECT  SUM(CAST(Size AS BIGINT)) as total
FROM    AllDocs
WHERE   DirName LIKE 'sites/test/test%'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...