본문 바로가기

Computer Science/DataBase

MSSQL - CURSOR

*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