Не удается выяснить причину ошибки переполнения Arithmeti c при преобразовании выражения в тип данных int при выполнении хранимой процедуры - PullRequest
0 голосов
/ 08 января 2020

У меня есть хранимая процедура, которая вызывает пользовательскую скалярную функцию. Когда я запускаю хранимую процедуру, я получаю сообщение об ошибке:

Сообщение 8115, Уровень 16, Состояние 2, Строка 3
Арифметика c Ошибка переполнения при преобразовании выражения в тип данных int error

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

В SSMS у меня есть запрос:

USE [TESTDB]
GO

DECLARE @return_value int

EXEC    @return_value = [dbo].[buildEventSum]

SELECT  'Return Value' = @return_value

Когда я отлаживаю и захожу в buildEventSum, а затем прохожу через него, ошибка не генерируется, пока он возвращается к вышеуказанному запросу, и вы «перешагиваете» строку «возвращаемое значение». Подтвердил, что @return_value равно 0, поэтому я в замешательстве.

Буду очень признателен за любые советы о том, как go определить и идентифицировать причину.

1 Ответ

0 голосов
/ 08 января 2020

Для скалярной функции вы используете SELECT:

SELECT [dbo].[buildEventSum]() AS result;

Или, если вы хотите сохранить результат в переменной:

DECLARE @result int;
SET @result=[dbo].[buildEventSum]();
SELECT @result AS result;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...