DB

프로시져 cursor 상태 확인

조셉LEE 2024. 2. 24. 15:05
728x90
반응형

MSSQL에서 Cursor 여러개 돌릴때 오류 발생시에 cursor 상태를 보고 

작동중인 Cursor를 닫아줘야 한다. 

선언되지 않은 Cursor를 닫으면 오류가 발생하니 Try ~~ catch문을 사용하여 

catch에서 아래 명령어를 선언해준다. 커서명은 본인이 명명한 이름

EX ================================================================

BEGIN TRY 

 ......................

END TRY

BEGIN CATCH

  DECLARE @CursorStatus INT;

  SET @CursorStatus = CURSOR_STATUS('local', '커서명1');
 
  IF (@CursorStatus >= 0)
  BEGIN
    CLOSE 커서명;
    DEALLOCATE 커서명;
  END


  SET @CursorStatus = CURSOR_STATUS('local', '커서명2');
 
  IF (@CursorStatus >= 0)
  BEGIN
    CLOSE 커서명2;
    DEALLOCATE 커서명2;
  END

END CATCH

반응형
LIST