다음을 통해 공유


@@CURSOR_ROWS(Transact-SQL)

현재 연결에 대해 열려 있는 마지막 커서에서 한정하는 행 수를 반환합니다. 성능 향상을 위해 MicrosoftSQL Server는 큰 키 집합과 정적 커서를 비동기식으로 채울 수 있습니다. @@CURSOR_ROWS를 호출하여 커서가 한정하는 행의 수를 검색할 수 있습니다.

항목 링크 아이콘Transact-SQL 구문 표기 규칙

구문

@@CURSOR_ROWS

반환 유형

integer

반환 값

반환 값

설명

-m

커서가 비동기식으로 채워집니다. 반환된 값(-m)은 현재 키 집합에 있는 행의 개수입니다.

-1

동적 커서입니다. 동적 커서는 모든 변경 사항을 반영하므로 커서가 한정하는 행의 수는 계속 변합니다. 따라서 한정된 모든 행이 검색되었다고 확실하게 말할 수는 없습니다.

0

열린 커서가 없거나 마지막으로 열린 커서에 한정된 행이 없거나 마지막으로 열린 커서가 닫히거나 할당 취소되었습니다.

n

커서가 완전히 채워졌습니다. 반환된 값(n)은 커서에 있는 행의 총 개수입니다.

주의

마지막 커서가 비동기식으로 열렸을 경우 @@CURSOR_ROWS에서 반환된 숫자는 음수입니다. 키 집합-드라이버 또는 정적 커서는 sp_configurecursor threshold 값이 0보다 크고 커서 결과 집합에 있는 행의 수가 커서 임계값보다 크면 비동기식으로 열립니다.

다음 예에서는 커서를 선언하고 SELECT를 사용하여 @@CURSOR_ROWS의 값을 표시합니다. 커서가 열리기 전에는 설정의 값이 0이며 커서가 열리면 커서 키 집합이 비동기식으로 채워졌음을 나타내는 값인 -1로 변경됩니다.

USE AdventureWorks;
GO
SELECT @@CURSOR_ROWS;
DECLARE Name_Cursor CURSOR FOR
SELECT LastName ,@@CURSOR_ROWS FROM Person.Contact;
OPEN Name_Cursor;
FETCH NEXT FROM Name_Cursor;
SELECT @@CURSOR_ROWS;
CLOSE Name_Cursor;
DEALLOCATE Name_Cursor;
GO           

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

-----------
0          

LastName       
---------------
Achong          

           
-----------
-1