본문 바로가기

개발/SQL

[MSSQL] Cursor in Stored Procedure

출처 : http://mygeni.tistory.com/24

Cursor in Stored Procedure

 

SQL Server 2005 Stored Procedure 에서 cursor 사용하는 방법을 소개한다.

간단히 설명하자면 커서를 FAST_FORWARD(빠른전진전용) 타입으로 정의하고 특정 조건에 해당하는 데이터를 조회하여 임시의 테이블에 넣는 과정을 나타내는 Stored Procedure의 일 부분이다.

-- cursor 선언 및 특성 정의, 할당

DECLARE cursorPtn CURSOR FAST_FORWARD

FOR

SELECT 필드1, 핃드2 FROM 테이블 WHERE 필드1 = 'aaa'

 

-- cursor open

OPEN cursorPtn

 

-- cursor에서 사용될 필드의 데이터 타입 정의

DECLARE @v_필드1 CHAR(12)

DECLARE @v_필드2 VARCHAR(20)

 

-- FETCH를 이용한 cursor1개의 rowset 정의

FETCH NEXT FROM cursorPtn INTO @v_필드1, @v_필드2

 

-- cursor 상태가 정상인 경우 (-1, -2 error)

WHILE @@FETCH_STATUS = 0

BEGIN

INSERT INTO 테이블2 VALUES (@v_필드1, @v_필드2)

           FETCH NEXT FROM cursorPtn INTO @v_필드1, @v_필드2

END

 

CLOSE cursorPtn

DEALLOCATE cursorPtn

Cursor 의 스크롤 동작, 특성에 대한 자세한 정보가 필요하신 분은 아래의 MSSQL 2005 온라인 설명서를 참고하기 바란다.

MSSQL2005 온라인 설명서 : Declare cursor(T-SQL)