Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Применимо к:SQL Server
База данных
SQL AzureУправляемый экземпляр
SQL AzureБаза данных SQL в Microsoft Fabric
Эта функция возвращает количество квалифицированных строк в настоящее время в последнем курсоре, открываемом в соединении. Чтобы повысить производительность, 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