@@CURSOR_ROWS (Transact-SQL)
Область применения: SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure
Эта функция возвращает количество квалифицированных строк в настоящее время в последнем курсоре, открываемом в соединении. Чтобы повысить производительность, SQL Server может заполнять большой набор ключей и статические курсоры асинхронно. @@CURSOR_ROWS
можно вызвать, чтобы определить, что количество строк, которые соответствуют курсору, извлекаются во время @@CURSOR_ROWS
вызова.
Соглашения о синтаксисе Transact-SQL
Синтаксис
@@CURSOR_ROWS
Типы возвращаемых данных
int
Возвращаемое значение
Возвращаемое значение | Description |
---|---|
-m |
Курсор заполняется асинхронно. Возвращаемое значение (–m) является текущим числом строк в наборе ключей. |
-1 |
Курсор является динамическим. Так как динамический курсор отражает все изменения, количество строк для курсора постоянно изменяется. Курсор не обязательно извлекает все квалифицированные строки. |
0 |
Курсоры не открыты, строки для последнего открытого курсора или последний открытый курсор закрыты или освобождены. |
n |
Курсор полностью заполнен. Возвращенное значение (n) является общим количеством строк в курсоре. |
Замечания
@@CURSOR_ROWS
возвращает отрицательное число, если последний курсор был открыт асинхронно. Драйвер набора ключей или статические курсоры открываются асинхронно, если значение sp_configure
порога курсора превышается 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 (No column name) ROWSTAT
--------- ----------------- ---------
Sánchez -1 NULL
-----------
-1