SQL
[MS-SQL] 커서(Cursor)
Eva_0401
2020. 4. 8. 16:02
: SELECT 한 결과(행집합)을 반복작업해야 할 경우 사용
사용방법
- 선언
DECLARE CUR1 CURSOR FOR SELECT ...
- DECLARE CURSOR 문은 커서를 정의한다. for 구문 뒤에 cursor에 삽입시켜줄 select 구문을 적용한다.
- 커서 열기
OPEN CUR1 -- cur1 커서 열기
FETCH NEXT FROM V_CUR2 INTO @NAME @SEQ -- 커서에서 첫번째 행 값을 읽어 변수에 대입한다.
- 커서를 이용하여 질의 수행결과 반환되는 여러 행 처리한다. select에 결과 집합을 채운다
- 반복 하기
WHILE (@@FETCH_STATUS = 0)
- 패치문이 성공적으로 실행될 때 (행이 모두 없어질때까지 처리) 0값을 준다.
- @@FETCH_STATUS는 연결의 모든 커서에 전역으로 적용된다.
4. 커서 닫기 및 삭제
CLOSE V_CUR -- 커서 닫기
DEALLOCATE V_CUR -- 커서 삭제
=>
커서는 CURSUR FOR 'QUERY'[커서 생성] -> OPEN [커서 사용준비] ->FETCH[커서 사용] ->CLOSE[커서 사용해제]-> DEALLOCATE[커서삭제] 순으로 진행