CURSOR_STATUS(Transact-SQL)

적용 대상:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

CURSOR_STATUS는 특정 매개 변수에 대해 커서 선언이 커서 및 결과 집합을 반환했는지 여부를 보여줍니다.

Transact-SQL 구문 표기 규칙

Syntax

CURSOR_STATUS   
     (  
          { 'local' , 'cursor_name' }   
          | { 'global' , 'cursor_name' }   
          | { 'variable' , 'cursor_variable' }   
     )  

참고 항목

SQL Server 2014(12.x) 및 이전 버전에 대한 Transact-SQL 구문을 보려면 이전 버전 설명서를 참조 하세요.

인수

'local'
커서 원본이 로컬 커서 이름임을 나타내는 상수를 지정합니다.

'cursor_name'
커서의 이름입니다. 커서 이름은 데이터베이스 식별자 규칙을 따라야 합니다.

'global'
커서의 원본이 전역 커서 이름임을 나타내는 상수를 지정합니다.

'variable'
커서의 원본이 로컬 변수임을 나타내는 상수를 지정합니다.

'cursor_variable'
커서 변수의 이름입니다. 커서 변수는 cursor 데이터 형식을 사용하여 정의해야 합니다.

반환 형식

smallint

반환 값 커서 이름 커서 변수
1 커서 결과 집합에 최소 한 개의 행이 있습니다.

변경 감지 불능 커서와 키 집합 커서의 경우 결과 집합에 최소 한 개의 행이 있습니다.

동적 커서의 경우 결과 집합에는 0개, 1개 또는 그 이상의 행이 있습니다.
이 변수에 할당된 커서가 열려 있습니다.

변경 감지 불능 커서와 키 집합 커서의 경우 결과 집합에 최소 한 개의 행이 있습니다.

동적 커서의 경우 결과 집합에는 0개, 1개 또는 그 이상의 행이 있습니다.
0 커서 결과 집합이 비어 있습니다.* 이 변수에 할당된 커서는 열려 있지만 결과 집합은 확실히 비어 있습니다.*
-1 커서가 닫혀 있습니다. 이 변수에 할당된 커서가 닫혀 있습니다.
-2 해당 사항 없음 다음 중 하나일 가능성이 있습니다.

이전에 호출된 프로시저에서 이 OUTPUT 변수에 커서를 할당하지 않았습니다.

이전에 할당된 프로시저에서 이 OUTPUT 변수로 커서를 할당했지만 프로시저가 완료되었을 때 커서가 닫힌 상태였습니다. 따라서 커서의 할당이 취소되고 호출 프로시저로 반환되지 않습니다.

선언된 커서 변수에 할당된 커서가 없습니다.
-3 지정된 이름의 커서가 없습니다. 지정된 이름의 커서 변수가 없거나 있는 경우에는 아직 커서가 할당되지 않았습니다.

*동적 커서는 절대 이 결과를 반환하지 않습니다.

이 예에서는 CURSOR_STATUS 함수를 사용하여 커서의 상태(선언 후, 열린 후, 닫힌 후)를 보여줍니다.

CREATE TABLE #TMP  
(  
   ii INT  
)  
GO  
  
INSERT INTO #TMP(ii) VALUES(1)  
INSERT INTO #TMP(ii) VALUES(2)  
INSERT INTO #TMP(ii) VALUES(3)  
  
GO  
  
--Create a cursor.  
DECLARE cur CURSOR  
FOR SELECT * FROM #TMP  
  
--Display the status of the cursor before and after opening  
--closing the cursor.  
  
SELECT CURSOR_STATUS('global','cur') AS 'After declare'  
OPEN cur  
SELECT CURSOR_STATUS('global','cur') AS 'After Open'  
CLOSE cur  
SELECT CURSOR_STATUS('global','cur') AS 'After Close'  
  
--Remove the cursor.  
DEALLOCATE cur  
  
--Drop the table.  
DROP TABLE #TMP  
  

결과 집합은 다음과 같습니다.

After declare
---------------
-1  
  
After Open
----------
1  
  
After Close
-----------
-1

추가 정보

커서 함수(Transact-SQL)
데이터 형식(Transact-SQL)