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> 
...
Другие вопросы по тегам