본문 바로가기

MSSQL

[MSSQL] 커서(CUSOR)를 이용한 반복문 예

728x90

DECLARE   @no INT                    -- 사용할 변수 선언 

 

DECLARE CUR CURSOR FOR      SELECT   no   FROM  [test_table]           -- 커서 선언    

 

OPEN CUR      --커서 오픈

 

FETCH NEXT FROM CUR INTO  @no   변수 @no에  [test_table]에서 조회한 no 값을 넣는다.

 

WHILE @@FETCH_STATUS = 0   -- 반복문 실행 

( ※ @@FETCH_STATUS 함수는 현재 연결에서 연 모든 커서에 실행된 마지막 커서 FETCH 문의 상태를 반환

상태값 0 : FETCH 문이 성공적으로 수행

상태값 -1 : FETCH 문이 실패했거나 행이 결과 집합의 범위를 벗어남

상태값 -2 : 인출된 행이 없음

상태값 -9 : 커서는 페치 작업을 수행하지 않음

)

 

 

BEGIN   

            

     SELECT  no FROM  [test_table]  where no = @no         -- 반복해서 처리할 쿼리 실행

 

     FETCH NEXT FROM CUR INTO @NO                      --다음ROW로 이동

 

 

 END

 


CLOSE CUR              --커서 닫음

 

DEALLOCATE CUR      --커서 초기화

728x90