MSSQL GOTO 문, RETURN 문 사용법 – 흐름 제어(4)
MS SQL 흐름 제어문 중에서 GOTO문은 지정한 라벨로 제어를 무조건 이동시키는 명령문이고 RETRUN문은 쿼리나 프로시저를 무조건 종료시키는 명령문입니다. 저 같은 경우 GOTO문은 오류 처리 부분에서 사용하고 그 이외에는 잘 사용하지는 않습니다.
그럼 간단한 예제를 통해서 GOTO, RETURN 문에 대해서 알아보죠.
포스트 기준
– Microsoft SQL Server 2019
– SSMS 18.10
사용 예제
1. 구문(syntaxsql)
1) GOTO
Define the label:
label:
Alter the execution:
GOTO label}
▶ WHILE 문은 중첩될 수 있습니다.
2) RETRUN
RETURN [ integer_expression ]
▶ 정수 값으로 반환합니다.
2. GOTO, RETURN – 예제 1)
▶ 데이터가 있는 경우 예제
DECLARE @USR_NM NVARCHAR(50)
/* 예제1) 데이터가 있는 경우 */
SELECT @USR_NM = USR_NM
FROM BS_USR_MAST
WHERE USR_ID = 'BLUESHARE' -- 받는 변수
IF @@ROWCOUNT = 0 -- 검색된 결과가 없는 경우
GOTO ERROR
/* 예제1) 검색된 결과값이 없는 경우는 아래문은 실행되지 않음 */
PRINT '사용자명 : ' + @USR_NM
RETURN
PRINT '정상적으로 처리되어도 RETURN문 다음이라 출력되지 않음'
/* 예제2) 검색된 결과값이 있는 경우는 아래문은 실행되지 않음 */
ERROR:
PRINT '사용자 정보가 없습니다. 확인하세요.'
RETURN
PRINT 'RETURN문 다음이라 출력되지 않음'
① RETURN문 이후에는 더 이상 실행되지 않습니다.
▶ PRINT ‘정상적으로 처리되어도 RETURN문 다음이라 출력되지 않음’
② RETURN문 이후에는 ERROR 라벨 실행문은 실행되지 않습니다.
3. GOTO, RETURN – 예제 2)
▶ 데이터가 없는 경우 예제
DECLARE @USR_NM NVARCHAR(50)
/* 예제2) 데이터가 없는 경우 */
SELECT @USR_NM = USR_NM
FROM BS_USR_MAST
WHERE USR_ID = 'REDSHARE' -- 받는 변수
IF @@ROWCOUNT = 0 -- 검색된 결과가 없는 경우
GOTO ERROR
/* 예제1) 검색된 결과값이 없는 경우는 아래문은 실행되지 않음 */
PRINT '사용자명 : ' + @USR_NM
RETURN
PRINT '정상적으로 처리되어도 RETURN문 다음이라 출력되지 않음'
/* 예제2) 검색된 결과값이 있는 경우는 아래문은 실행되지 않음 */
ERROR:
PRINT '사용자 정보가 없습니다. 확인하세요.'
RETURN
PRINT 'RETURN문 다음이라 출력되지 않음'
① GOTO문 이후에는 더 이상 실행되지 않습니다.
② RETURN문 이후에는 더 이상 실행되지 않습니다.
▶ PRINT ‘RETURN문 다음이라 출력되지 않음’
관련 이전 게시글
- MSSQL BEGIN…END 블록 문법 – 흐름 제어(1)
- MSSQL IF…ELSE 블록 문법 – 흐름 제어(2)
- MSSQL WHILE(반복문), CONTINUE, BREAK 사용법 – 흐름 제어(3)
이 글이 도움이 되셨다면 공유를 부탁드립니다. 다음 글에서 뵙겠습니다!