@@CURSOR_ROWS (Transact-SQL)
Применимо к:SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure
Возвращает число выбранных строк, имеющихся в последнем открытом курсоре в данном соединении. Чтобы повысить производительность, SQL Server может заполнять большой набор ключей и статические курсоры асинхронно. Функцию @@CURSOR_ROWS
можно вызвать для определения того, получено ли количество строк, определенных для курсора, во время вызова @@CURSOR_ROWS.
Соглашения о синтаксисе Transact-SQL
Синтаксис
@@CURSOR_ROWS
Примечание.
Сведения о синтаксисе Transact-SQL для SQL Server 2014 (12.x) и более ранних версиях см . в документации по предыдущим версиям.
Типы возвращаемых данных
integer
Возвращаемое значение
Возвращаемое значение | Description |
---|---|
-m | Курсор заполняется асинхронно. Возвращаемое значение (–m) является текущим числом строк в наборе ключей. |
-1 | Курсор является динамическим. Так как динамический курсор отражает все изменения, количество строк для курсора постоянно изменяется. Курсор не обязательно извлекает все определенные строки. |
0 | Ни один курсор не был открыт, не было строк для последнего открытого курсора или последний открытый курсор закрыт или освобожден. |
n | Курсор полностью заполнен. Возвращенное значение (n) является общим количеством строк в курсоре. |
Замечания
@@CURSOR_ROWS
возвращает отрицательное число, если последний курсор был открыт асинхронно. Управляемые набором ключей или статические курсоры открываются асинхронно, если значение параметра cursor threshold процедуры 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
---------------
Sanchez
-----------
-1
См. также
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по