구문
------------------------------------------------------------------------------------------
Define the label: label : Alter the execution:
GOTO label
------------------------------------------------------------------------------------------
주의
GOTO는 조건부 흐름 제어 문, 문 블록 또는 프로시저 내에서 사용할 수 있지만 일괄 처리 밖에 있는 레이블로 이동할 수 없습니다. GOTO 분기는 GOTO 전후에 정의된 레이블로 이동할 수 있습니다.
인수
label
GOTO의 대상이 해당 레이블인 경우 처리가 시작되는 지점입니다. 레이블은 식별자 규칙을 따라야 합니다. 레이블은 GOTO 사용 여부에 관계 없이 주석을 기록하는 방법으로 사용될 수 있습니다.
사용 권한
GOTO 권한은 모든 유효한 사용자에게 기본적으로 부여됩니다.
예
다음 예에서는 WHILE 사용의 대안으로 GOTO 루핑을 보여 줍니다.
참고:
tnames_cursor 커서는 정의되지 않습니다. 이 예는 설명을 위해 작성한 것입니다.
------------------------------------------------------------------------------------------
USE AdventureWorks;
GO
DECLARE @tablename sysname
SET @tablename = N'Person.AddressType'
table_loop:
IF (@@FETCH_STATUS <> -2)
BEGIN
SELECT @tablename = RTRIM(UPPER(@tablename))
EXEC ('SELECT ''' + @tablename + ''' = COUNT(*) FROM '
+ @tablename )
PRINT ' '
END
FETCH NEXT FROM tnames_cursor INTO @tablename
IF (@@FETCH_STATUS <> -1) GOTO table_loop
GO
------------------------------------------------------------------------------------------
Posted by 홍반장