2011-01-02 10 views
20

Допустим, у меня есть хранимая процедура, которая имеет простой блок IF. Если выполняемая проверка соответствует критериям, я хочу остановить процедуру от дальнейшего выполнения.Как остановить выполнение хранимой процедуры с использованием SQL Server?

Каков наилучший способ для этого?

Вот код:

IF EXISTS (<Preform your Check>) 
BEGIN 
    // NEED TO STOP STORED PROCEDURE EXECUTION 
END 
ELSE 
BEGIN 
    INSERT()... 
END 

Спасибо за любую помощь в этом!

ответ

45

Просто сделайте вызов RETURN:

IF EXISTS (<some condition>) 
BEGIN 
    // NEED TO STOP STORED PROCEDURE EXECUTION 
    RETURN 
END 

Это возвращает управление обратно вызывающему абоненту - он пропускает все остальное в прок.

+0

Большое спасибо за совет. –

+0

что делать в случае, если это сделка? он скажет, что «Счет транзакции после EXECUTE указывает несоответствующее число операторов BEGIN и COMMIT. Предыдущий счетчик = 0, текущий счетчик = 1" – Muflix

0

Вы можете просто поставить ярлык перехода в конец корпуса SP и выдать GOTO в первом заявлении IF. В качестве альтернативы вы можете расширить первый блок BEGIN ... END, чтобы содержать весь остаток тела SP, и отменить условие (IF NOT EXISTS...).

Смежные вопросы