Использование инструкции GOTO
Инструкция GOTO приводит к выполнению пакета языка Transact-SQL для перехода к метке. Не выполняется ни одной инструкции между GOTO и меткой. Имя метки определяется при помощи синтаксиса:
label_name:
Используйте инструкцию GOTO расчетливо. Избыточное использование инструкции GOTO может затруднить понимание логики пакета языка Transact-SQL. Логика, реализованная при помощи инструкции GOTO, почти всегда может быть реализована при помощи других инструкций управления потоком. Инструкция GOTO наилучшим образом используется для выхода из наиболее глубоко вложенных инструкций управления потоком.
Метка, являющаяся целью инструкции GOTO, определяет только цель перехода. Метка не изолирует инструкции, следующие за ней, от инструкций, идущих непосредственно перед ней. Любой пользователь, выполняющий инструкции непосредственно перед меткой, пропускает метку и выполняет инструкции после метки. Это случается, если только инструкция, следующая немедленно за меткой, сама не является инструкцией управления потоком, такой как RETURN.
Ниже приводится пример инструкции GOTO:
IF (SELECT SYSTEM_USER()) = 'payroll'
GOTO calculate_salary
-- Other program code would appear here.
-- When the IF statement evaluates to TRUE, the statements
-- between the GOTO and the calculate_salary label are
-- ignored. When the IF statement evaluates to FALSE the
-- statements following the GOTO are executed.
calculate_salary:
-- Statements to calculate a salary would appear after the label.