사용자 도구

사이트 도구


sqlserver:cursor

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

양쪽 이전 판이전 판
다음 판
이전 판
sqlserver:cursor [2020/07/31 04:44] – [방법2] taekgusqlserver:cursor [2025/04/15 10:05] (현재) – 바깥 편집 127.0.0.1
줄 1: 줄 1:
 ====== CURSOR사용하기 ====== ====== CURSOR사용하기 ======
 MS SQL Server에서는 For-Cursor문이 지원되지 않는다.(무식하게도..) MS SQL Server에서는 For-Cursor문이 지원되지 않는다.(무식하게도..)
 +=== @@FETCH_STATUS ===
 +이 함수는 __**현재 연결**__에서 연 __모든 커서__에 실행된 마지막 커서 FETCH 문의 상태를 반환합니다.
 +
 +@@FETCH_STATUS는 연결의 모든 커서에 전역으로 적용되므로 신중히 사용하세요.
 +  - FETCH 문이 실행된 후 다른 커서에 대해 다른 FETCH 문을 실행하기 전에 @@FETCH_STATUS의 테스트를 수행해야 합니다. 
 +  - @@FETCH_STATUS는 연결에서 페치가 수행되기 전에 정의되지 않습니다.
 +  - 예를 들어 사용자는 한 커서에서 FETCH 문을 실행한 후 다른 커서에서 결과를 열고 처리하는 저장 프로시저를 호출합니다. 호출된 저장 프로시저에서 컨트롤이 반환되면 @@FETCH_STATUS는 저장 프로시저 내에서 실행된 마지막 FETCH를 반영하고 저장 프로시저가 호출되기 전에 실행된 FETCH 문은 반영하지 않습니다.
 +  - 특정 커서의 마지막 페치 상태를 검색하려면 sys.dm_exec_cursors 동적 관리 함수의 fetch_status 열을 쿼리하세요.
 ===== 방법1 ===== ===== 방법1 =====
 WHILE @@FETCH_STATUS = 0를 이용하는 방법으로 표준적인 방법 WHILE @@FETCH_STATUS = 0를 이용하는 방법으로 표준적인 방법
줄 29: 줄 37:
           PRINT 'ERROR' + ERROR_MESSAGE()           PRINT 'ERROR' + ERROR_MESSAGE()
         END CATCH         END CATCH
 +        
         FETCH NEXT FROM cursor_product INTO          FETCH NEXT FROM cursor_product INTO 
             @product_name,              @product_name, 
줄 63: 줄 72:
         PRINT @product_name + CAST(@list_price AS varchar)         PRINT @product_name + CAST(@list_price AS varchar)
    END    END
 +
 +CLOSE cursor_product;
 +
 +DEALLOCATE cursor_product;
 </code> </code>
  
-=== @@FETCH_STATUS === 
-이 함수는 __**현재 연결**__에서 연 __모든 커서__에 실행된 마지막 커서 FETCH 문의 상태를 반환합니다. 
  
-@@FETCH_STATUS는 연결의 모든 커서에 전역으로 적용되므로 신중히 사용하세요. 
-  - FETCH 문이 실행된 후 다른 커서에 대해 다른 FETCH 문을 실행하기 전에 @@FETCH_STATUS의 테스트를 수행해야 합니다.  
-  - @@FETCH_STATUS는 연결에서 페치가 수행되기 전에 정의되지 않습니다. 
-  - 예를 들어 사용자는 한 커서에서 FETCH 문을 실행한 후 다른 커서에서 결과를 열고 처리하는 저장 프로시저를 호출합니다. 호출된 저장 프로시저에서 컨트롤이 반환되면 @@FETCH_STATUS는 저장 프로시저 내에서 실행된 마지막 FETCH를 반영하고 저장 프로시저가 호출되기 전에 실행된 FETCH 문은 반영하지 않습니다. 
-  - 특정 커서의 마지막 페치 상태를 검색하려면 sys.dm_exec_cursors 동적 관리 함수의 fetch_status 열을 쿼리하세요. 
sqlserver/cursor.1596170683.txt.gz · 마지막으로 수정됨: 2025/04/15 10:05 (바깥 편집)