Всегда ли возвращаемое значение 0 является успешным в хранимых процедурах? - PullRequest
12 голосов
/ 17 мая 2011

Если хранимая процедура возвращает нулевое значение, означает ли это, что она была успешно выполнена?Я использую MS SQL Server 2008.

Ответы [ 3 ]

11 голосов
/ 17 мая 2011

Нет, вы можете вернуть что-то самостоятельно

пример

CREATE PROC pr_test AS 
SELECT 1/0

RETURN 0
GO

Теперь запустите это

DECLARE @i INT
exec @i = pr_test

SELECT @i  -- will be 0

DROP PROC pr_test

Теперь давайте сделаем это снова без оператора возврата

CREATE PROC pr_test2 AS 
SELECT 1/0

GO

DECLARE @i INT
exec @i = pr_test2

SELECT @i  -- will be - 6

Лучше использовать output parameter для передачи назад статусов и / или сообщений

6 голосов
/ 17 мая 2011

Значение @@ ERROR, равное нулю, означает, что ваша процедура завершена без ошибок.

Конечно, это не значит, что он сделал то, что хотел ...

Можете ли вы быть более точным в отношении того, на что вы смотрите?

5 голосов
/ 17 мая 2011

Вы можете использовать слово Return для возврата любого целочисленного значения из хранимой процедуры .Это означает, что ноль не означает, что хранимая процедура была успешно выполнена.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...