DataBase/MS-SQL
Cursor in Stored Procedure
백룡화검
2010. 11. 3. 17:10
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를 이용한 cursor의 1개의 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)