Database/MS SQL
MS SQL。커서(Cursor)
ilerlemek
2020. 12. 9. 23:28
728x90
반응형
테이블에서 여러개의 행을 조회(SELECT)한 후 그 결과를 한 행씩 처리하는 방식
-- 변수 선언
DECLARE @[변수명1] [데이터 타입]
@[변수명2] [데이터 타입]
-- 커서 선언
DECLARE [커서명] CURSOR FOR
SELECT [필드 리스트]
FROM [테이블명]
-- 커서 오픈
OPEN [커서명]
-- SELECT한 값을 변수(@[변수명1], @[변수명2])에 저장
FETCH NEXT FROM [커서명] INTO @[변수명1], @[변수명2]
-- @@FETCH_STATUS 이상이 없는 경우 0, 실패했거나 행이 결과 집합의 범위를 벗어난 경우 -1, 행(Row) 없는 경우 -2
WHILE @@FETCH_STATUS = 0
BEGIN
-- SELECT한 데이터로 수행할 작업
-- INSERT, UPDATE, DELETE 등
DELETE [테이블명]
WHERE [필드1] = @[변수명1]
AND [필드2] = @[변수명2]
-- 다음 행(Row)으로 이동
FETCH NEXT FROM [커서명] INTO @[변수명1], @[변수명2]
END
-- 커서 닫고 초기화
CLOSE [커서명]
DEALLOCATE [커서명]
728x90
반응형