본문 바로가기

Database/MS SQL

MS SQL。커서(Cursor)

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
반응형

'Database > MS SQL' 카테고리의 다른 글

MS SQL。TRY - CATCH  (0) 2020.12.11
MS SQL。MERGE  (0) 2020.12.10
MS SQL。반복문(While)  (0) 2020.12.08
MS SQL。조건문(CASE)  (0) 2020.12.07
MS SQL。조건문(IF - ELSE)  (0) 2020.12.06