*MSSQL Cursor(커서) 란?
- 일반적으로 Sql문 사용시 결과에 대해서 집합(Table 형태)로 반환
=> 이러한 결과 집합을 한 행씩 처리
1) 사용 예제 및 설명
DECLARE test_cursor [INSENSITIVE][SCROLL] CURSOR // CURSOR을 선언하는 부분
FOR SELECT * FROM table // FOR 다음에 CURSOR에 사용할 SELECT 구문을 적용
OPEN test_cursor // 생성된 커서의 값을 OPEN 시켜준다.(커서는 사용전에 반드시 OPEN을 해야한다)
FETCH NEXT FROM test_cursor // 커서의 값을 한 줄씩 읽어 온다.
CLOSE test_cursor //커서와 연결된 결과 집합을 해제
DEALLOCATE test_cursor // 커서가 제거(사용된 리소스를 해제한다)
* 커서 명령문
1) FETCH NEXT : 현재 행 바로 다음의 결과 행을 반환
2) FETCH PRIOR : 현재 행 바로 앞의 결과 행을 반환(첫 번째 행일 경우 반환하지 않음)
3) FETCH FIRST : 커서의 첫 번째 행을 반환
4) FETCH LAST : 커서의 마지막 행을 반환
[참조] 커서관련 상수 : @@FETCH_STATUS
정의 : 현재 연결된 Cursor에 대하여 FETCH 문의 상태를 반환해주는 Global 변수
Return value Description
0 The FETCH statement was successful.
-1 The FETCH statement failed or the row was beyond the result set.
-2 The row fetched is missing.
-9 The cursor is not performing a fetch operation.
'Computer Science > DataBase' 카테고리의 다른 글
MSSQL - 임시테이블과 테이블 변수 비교 (0) | 2018.03.22 |
---|