GOTO(Transact-SQL)

적용 대상:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

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

Transact-SQL 구문 표기 규칙

Syntax

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

참고 항목

SQL Server 2014(12.x) 및 이전 버전에 대한 Transact-SQL 구문을 보려면 이전 버전 설명서를 참조 하세요.

인수

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)