커서(CURSOR) 사용법 - SqlServer
가끔 커서를 써서 데이터를 처리해야 할 필요가 있습니다. 간단한 예제를 통해서 사용법을 적어 봤습니다.
유저테이블(UserTable)에서 삭제된(UseYN=’N’) 사용자들만 조회해서 삭제유저테이블에(DeleteUserTable)에 저장하는 예제 입니다.
뭐 이렇게 번거롭게 커서를 써서 할 필요 없는 쿼리지만 그저 예제를 구성하기 위함이니 탓하지 마시기를^^
--커서 데이터를 가져올 변수 선언
DECLARE @UserID VARCHAR(10)
DECLARE @UserName VARCHAR(50)
--커서 선언하면서 조회된 데이터를 담습니다.
DECLARE db_cursor CURSOR FOR
SELECT
UserID, UserName
FROM UserTable
WHERE UseYN = 'N'
--커서를 열고 첫행에서 데이터를 꺼내서 변수에 담습니다.
--데이터를 꺼낼때마다 @@FETCH_STATUS가 감소 합니다.
OPEN db_cursor
FETCH NEXT FROM db_cursor INTO @UserID, @UserName
--꺼낼 데이터가 없을때까지 반복하면서
WHILE @@FETCH_STATUS = 0
BEGIN
--처리할 일을 하고
INSERT DeleteUserTable (UserID, UserName)
VALUES (@UserID, @UserName)
--다시 데이터를 꺼냅니다.
FETCH NEXT FROM db_cursor INTO @UserID, @UserName
END
--커서를 삭제 합니다.
CLOSE db_cursor
DEALLOCATE db_cursor
'프로그램 경험 > Database' 카테고리의 다른 글
티베로 ODBC 설치 (0) | 2019.06.12 |
---|---|
[MySql] 데이터베이스 추가 및 유저 추가 (0) | 2015.04.27 |
[SqlServer] 행번호 업데이트 (0) | 2015.01.26 |
[SqlServer] 프로시저 결과 테이블 변수에 담기 (0) | 2015.01.06 |
[SqlServer] 월별 누계 금액 구하기 (0) | 2014.11.19 |