Я пишу хранимую процедуру. Эта процедура имеет случай, где, если она встречена, я хочу прекратить выполнить процедуру и возвращаться-1. Как я делаю это? В настоящее время я пробую следующее:
IF @result <> 1
BEGIN
SELECT -1
END
Однако ВЫБОР не является типичным "возвратом". Поскольку можно предположить, что я провожу большую часть своего времени в коде, который является, почему я ищу что-то как "возврат".
Спасибо,
IF @result <> 1
BEGIN
RETURN -1
END
SELECT * FROM bla
RETURN 0
Безоговорочный выход из запроса или процедуры . RETURN является немедленным и полным и может использоваться в любой момент для выхода из процедуры, пакета или блока операторов . Операторы, следующие за RETURN , не выполняются.
При использовании с хранимой процедурой RETURN не может возвращать нулевое значение. Если процедура пытается вернуть нулевое значение (например, используя RETURN @status, когда @status имеет значение NULL), генерируется предупреждающее сообщение и возвращается значение 0
.
Обычно возвращается ноль 0
, когда все в порядке, отрицательное значение, когда есть мягкая ошибка (например, проверка или предупреждение пользователя), и положительное значение для жесткой ошибки, например вставка. сбой и т. д.
...
IF @result!=1
BEGIN
RETURN -1 --there was an error!
END
....
RETURN 0 --everything is fine
IF @result <> 1
BEGIN
SELECT -1
RETURN
END
не работает?