GOTO (Transact-SQL)

Применимо к:SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure

Переводит поток выполнения на метку. Инструкции языка Transact-SQL или инструкции, следующие за инструкцией GOTO, пропускаются, и выполнение продолжается с метки. Инструкция GOTO и метки могут быть включены в процедуру, пакет или блок инструкций. Инструкции GOTO могут быть вложенными.

Соглашения о синтаксисе Transact-SQL

Синтаксис

  
Define the label:   
label:   
Alter the execution:  
GOTO label   

Примечание.

Сведения о синтаксисе Transact-SQL для SQL Server 2014 (12.x) и более ранних версиях см . в документации по предыдущим версиям.

Аргументы

label
Точка, с которой начинается обработка инструкций после перехода на текущую метку с помощью инструкции GOTO. Метки должны соответствовать правилам для идентификаторов. Метка может применяться без инструкции GOTO как метод комментирования.

Замечания

Инструкция GOTO может существовать внутри условных инструкций, управляющих потоком, блоков инструкций или процедур, однако не может ссылаться на метку, расположенную вне этого пакета. Инструкция GOTO может ссылаться на метку, расположенную как до нее, так и после.

Разрешения

Разрешения GOTO по умолчанию предоставляются всем допустимым пользователям.

Примеры

В следующем примере показано, как использовать разрешения GOTO в качестве механизма ветви.

DECLARE @Counter int;  
SET @Counter = 1;  
WHILE @Counter < 10  
BEGIN   
    SELECT @Counter  
    SET @Counter = @Counter + 1  
    IF @Counter = 4 GOTO Branch_One --Jumps to the first branch.  
    IF @Counter = 5 GOTO Branch_Two  --This will never execute.  
END  
Branch_One:  
    SELECT 'Jumping To Branch One.'  
    GOTO Branch_Three; --This will prevent Branch_Two from executing.  
Branch_Two:  
    SELECT 'Jumping To Branch Two.'  
Branch_Three:  
    SELECT 'Jumping To Branch Three.';  

См. также

Язык управления потоком (Transact-SQL)
НАЧАТЬ... END (Transact-SQL)
BREAK (Transact-SQL)
CONTINUE (Transact-SQL)
ЕСЛИ... ELSE (Transact-SQL)
WAITFOR (Transact-SQL)
WHILE (Transact-SQL)