2017년 3월 29일 수요일

[MS-SQL] Mssql Cursor(커서) 사용하기 2 - (mssql 커서(cursor) 응용)


1. Cursor(커서) 를 이용한 결과 값 출력

- USERTABLE 의 SELECT 값을 CURSOR 을 이용하여 출력을 하는데 이때, PRINT 함수를
이용하여 메시지로 꾸며서 출력을 하겠습니다.

- USERTABLE SELECT 값

 - CURSOR 을 이용하여 PRINT 함수로 출력

* Query 문 분석

- SQL 문을 한줄 씩 살펴 보겠습니다.

+ DECLARE @temp_username NVARCHAR(50), @temp_tel NVARCHAR(50)
-> 커서 에서 반환하는 유저이름, 유저전화번호를 저장할 변수를 생성합니다.

+ DECLARE test_cur CURSOR FOR SELECT USERNAME, TEL FROM USERTABLE
-> 커서 생성 및 커서에 대입할 SELECT 구문을 작성 합니다.

+ OPEN test_cur
-> 커서 사용 준비를 합니다.

+ FETCH NEXT FROM test_cur INTO @temp_username, @temp_tel
-> 커서에서 첫번째 행 값을 읽어 변수에 대입합니다.

+ PRINT '----- CURSOR DOCUMENT START -----'
-> PRINT 함수를 사용하여 문서 시작을 알립니다.

+ WHILE @@FETCH_STATUS = 0
-> @@FETCH_STATUS 는 FETCH 문의 실행 상태를 반환 합니다. ( 0 : 수행, -1 : 실패, -2 : 행 없음)
즉 FETCH NEXT 문이 성공적으로 수행되면 WHILE 문이 수행되며 실패, 또는 커서의 행을 모두 반환하여
행이 없을 경우 WHILE 문이 종료 됩니다.
+ PRINT '유저이름 || 유저전화번호'
PRINT '[ ' + @temp_username + ' ] || [ ' + @temp_tel + ' ]'
-> 변수에 저장된 값을 PRINT 함수를 이용하여 출력합니다.

+ FETCH NEXT FROM test_cur INTO @temp_username, @temp_tel
-> 커서에서 다음행을 불러와 변수에 대입합니다.

+ CLOSE test_cur
-> OPEN 된 커서를 닫습니다.
+ DEALLOCATE test_cur
-> 커서에 할당된 리소스를 제거 합니다.

댓글 없음:

댓글 쓰기