다음을 통해 공유


@@CURSOR_ROWS(Transact-SQL)

적용 대상: SQL Server Azure SQL 데이터베이스 Azure SQL Managed Instance

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

Transact-SQL 구문 표기 규칙

구문

@@CURSOR_ROWS

반환 형식

int

반환 값

반환 값 설명
-m 커서가 비동기식으로 채워집니다. 반환되는 값(-m)은 현재 키 집합에 있는 행의 개수입니다.
-1 동적 커서입니다. 동적 커서는 모든 변경 사항을 반영하므로 커서가 한정하는 행의 수는 계속 변합니다. 커서가 정규화된 행을 모두 검색하지는 않습니다.
0 커서가 열려 있지 않거나, 마지막으로 연 커서에 대해 정규화된 행이 없거나, 마지막으로 연 커서가 닫혀 있거나 할당이 취소되었습니다.
n 커서가 완전히 채워졌습니다. 반환되는 값(n)은 커서에 있는 행의 총 개수입니다.

설명

@@CURSOR_ROWS는 마지막 커서가 비동기적으로 열린 경우 음수를 반환합니다. 커서 임계값이 초과되고 커서 결과 집합의 행 수가 커서 임계값을 초과하는 0경우 sp_configure 키 집합 드라이버 또는 정적 커서가 비동기적으로 열립니다.

예제

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

USE AdventureWorks2022;
GO

SELECT @@CURSOR_ROWS;

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

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

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

LastName   (No column name)   ROWSTAT
---------  -----------------  ---------
Sánchez    -1                 NULL

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