다음을 통해 공유


GOTO(Transact-SQL)

적용 대상: SQL Server Azure SQL 데이터베이스 Azure SQL Managed Instance

실행 흐름을 지정된 레이블로 변경합니다. GOTO 다음에 이어지는 Transact-SQL 문을 건너뛰고 지정된 레이블에서 처리를 계속 이어갑니다. GOTO 문과 레이블은 프로시저, 일괄 처리, 문 블록 등 어디에서나 사용할 수 있습니다. GOTO 문은 중첩될 수 있습니다.

Transact-SQL 구문 표기 규칙

구문

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

인수

label
GOTO의 대상이 해당 레이블인 경우 처리가 시작되는 지점입니다. 레이블은 식별자 규칙을 따라야 합니다. 레이블은 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)
BEGIN...END(Transact-SQL)
BREAK(Transact-SQL)
CONTINUE(Transact-SQL)
IF...ELSE(Transact-SQL)
WAITFOR(Transact-SQL)
WHILE(Transact-SQL)