[MSSQL] CURSOR 사용법

이기원·2022년 6월 16일
0

SQL

목록 보기
2/2

프로시저를 작성시 가급적이면 한번의 조회로 서비스를 구현 할 수 있으면 좋겠지만, 업무 특성이나 프로세스 구조 상 다른언어의 Foreach 같은 반복문이 필요 할때가 있다. 이에 가장 유용한것이 CURSOR 인데, 기본적인 사용 문법은 다음과 같다.

DECLARE [CURSOR_NAME] CURSOR FOR // CURSOR 정의
	(반복 작업이 필요한 DataSource)
OPEN [CURSOR_NAME]
FETCH NEXT FROM [CURSOR_NAME] INTO (Column에 매핑되는 변수들)

WHILE @@FETCH_STATUS = 0 // FETCH 끝을 찾을떄까지 반복
BEGIN

(WORK)

FETCH NEW FROM [CURSOR_NAME] INTO (Column에 매핑되는 변수들)
END

CLOSE [CURSOR_NAME] // CURSOR 닫음
DEALLOCATE [CURSOR_NAME] // CURSOR 해제

기존 언어의 Foreach가 동작하는 방식을 상상하면, 크게 사용이 어렵지 않으며 활용또한 쉽다. 커서는 DataSource에서 한 행씩 데이터를 읽어와서, 지정된 변수에 데이터를 매핑후 반복문 내용을 수행하게 된다. 다만 많은 수의 데이터를 처리할때에는 성능을 크게 떨어뜨리므로 적은 데이터를 처리할때에만 최소한으로 사용하자.

profile
초급 / 전산 / MES

0개의 댓글