Выполнить запрос после синтаксиса GOTO - PullRequest
0 голосов
/ 10 января 2020

У меня есть пример запроса, моя проблема в том, как выполнить запрос после запуска синтаксиса GOTO.

Это мой запрос:

DECLARE @TotalMaarks INT
SET @TotalMaarks = 49

IF @TotalMaarks >= 50
   GOTO Pass

IF @TotalMaarks < 50
   GOTO Fail

PRINT ' Congratulations '

Pass:
   PRINT ' Congratulations '
   PRINT ' You pass the Examination '
   RETURN

Fail:
   PRINT ' You Failed! '
   PRINT ' Better Luck Next Time '
   RETURN
GO

Результат этого запроса будет GOTO Fail:

Вам не удалось!

Удачи в следующий раз

Но я хочу, чтобы после запуска Fail: он также выполнял PRINT 'Congratulations'

Ожидаемый результат:

Вы потерпели неудачу!

Удачи в следующий раз

Поздравления

Как мне вернуться к IF для выполнения других левых запросов?

Потому что после Fail это закончится.

1 Ответ

3 голосов
/ 10 января 2020

Избегайте GOTO. Раньше это было необходимо для обработки ошибок до того, как TRY / CATCH был добавлен в T SQL, но я не могу придумать сценарий, где бы я использовал его больше. GOTO обескураживают почти на всех языках, которые есть, начиная с известной статьи 1968 года Go К заявлению, которое считается вредным

DECLARE @TotalMaarks INT
SET @TotalMaarks = 49

IF @TotalMaarks >= 50
BEGIN
   PRINT ' Congratulations '
   PRINT ' You pass the Examination '
END
ELSE IF @TotalMaarks < 50
BEGIN
   PRINT ' You Failed! '
   PRINT ' Better Luck Next Time '
END

PRINT ' Congratulations '

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