SQL GOTO оператор в скрипте с несколькими GO
Мне нужно выйти из сценария SQL без ошибки, если выполняется определенное условие. Я читал, что 1 решение было бы raiseerror
с кодом ошибки 20+ и with log
параметр. Но ограничением для этого является то, что я могу выполнить это только как администратор, и соединение с БД будет прервано.
Кроме того, я попытался использовать GOTO и перейти к концу сценария, но это не работает, потому что у меня есть несколько GO в середине сценария. Есть ли другое решение?
IF <some condition>
BEGIN
GOTO Finished;
END
GO
Finished:
SELECT 'Done'
Спасибо!
1 ответ
Решение
goto
не может прыгнуть мимо go
, Вы должны будете повторно протестировать условие в каждом блоке:
IF NOT <some condition>
BEGIN
...
END
GO
IF NOT <some condition>
BEGIN
...
END
GO
IF NOT <some condition>
...