MSSQL GOTO 문, RETURN 문 사용법 -  흐름 제어(4)

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 라벨 실행문은 실행되지 않습니다.

GOTO, RETURN - 예제 1)


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문 다음이라 출력되지 않음’

GOTO, RETURN - 예제 2)

관련 이전 게시글


이 글이 도움이 되셨다면 공유를 부탁드립니다. 다음 글에서 뵙겠습니다!

위로 스크롤