본문 바로가기

DB

MS SQL CURSOR

커서란

데이터 작업을 할때 테이블에서 집합 단위가 아니라 행 단위로 처리를 해야할 때 사용하는 방식

커서의 특징

집합이 아닌 행 단위로 작업을 수행하기 때문에 속도가 느리다

프로그램에서 비유하면 컬렉션을 루프를 돌려서 인덱스 별로 처리하는 것과 같다

 

사용예시

--커서 생성
DECLARE DATE_CURSOR CURSOR FOR

--조회하고자 하는 select문 선언
  SELECT DT FROM #TEMP_DATE;

--커서를 이용하여서 동적 쿼리 작성
--커서 오픈
OPEN DATE_CURSOR
  
  --커서의 다음행을 가지고온다
  FETCH NEXT FROM DATE_CURSOR INTO @FORMATDATE
  
  -- 커서의 행이 마지막 행이 될 때까지 반복함
  WHILE @@FETCH_STATUS =0
  BEGIN
    -- 반복 실행한 문장
    --...
    
    --커서의 다음행을 가지고온다
    FETCH NEXT FROM DATE_CURSOR INTO @FORMATDATE
  END
  
-- 커서 닫기
CLOSE DATE_CURSOR
-- 커서 참조 제거
DEALLOCATE DATE_CURSOR
반응형