@@CURSOR_ROWS(Transact-SQL)
적용 대상:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance
이는 현재 연결에 대해 열려 있는 마지막 커서에서 한정하는 행 수를 반환합니다. 성능 향상을 위해 SQL Server는 큰 키 집합과 정적 커서를 비동기식으로 채울 수 있습니다. @@CURSOR_ROWS
를 호출하여 @@CURSOR_ROWS 호출 시 커서에 적합한 행 수가 검색되는지 확인할 수 있습니다.
Syntax
@@CURSOR_ROWS
참고 항목
SQL Server 2014(12.x) 및 이전 버전에 대한 Transact-SQL 구문을 보려면 이전 버전 설명서를 참조 하세요.
반환 형식
integer
반환 값
반환 값 | 설명 |
---|---|
-m | 커서가 비동기식으로 채워집니다. 반환되는 값(-m)은 현재 키 집합에 있는 행의 개수입니다. |
-1 | 동적 커서입니다. 동적 커서는 모든 변경 사항을 반영하므로 커서가 한정하는 행의 수는 계속 변합니다. 커서가 반드시 한정된 모든 행을 검색하는 것은 아닙니다. |
0 | 열린 커서가 없거나 마지막으로 열린 커서에 한정된 행이 없거나 마지막으로 열린 커서가 닫히거나 할당 취소되었습니다. |
n | 커서가 완전히 채워졌습니다. 반환되는 값(n)은 커서에 있는 행의 총 개수입니다. |
설명
@@CURSOR_ROWS
는 마지막 커서가 비동기적으로 열린 경우 음수를 반환합니다. 키 집합-드라이버 또는 정적 커서는 sp_configure cursor threshold 값이 0보다 크고 커서 결과 집합에 있는 행의 수가 커서 임계값보다 크면 비동기식으로 열립니다.
예제
이 예에서는 먼저 커서를 선언한 후 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
---------------
Sanchez
-----------
-1
참고 항목
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기