@@CURSOR_ROWS (Transact-SQL)
Aplica-se a: SQL Server Banco de Dados SQL do Azure Instância Gerenciada de SQL do Azure
Essa função retorna o número de linhas qualificadas atualmente no último cursor aberto na conexão. Para melhorar o desempenho, o SQL Server pode popular cursores estáticos e conjuntos de chaves grandes assincronamente. @@CURSOR_ROWS
pode ser chamado para determinar se o número de linhas que se qualificam para um cursor são recuperados no momento da @@CURSOR_ROWS
chamada.
Convenções de sintaxe de Transact-SQL
Sintaxe
@@CURSOR_ROWS
Tipos de retorno
int
Valor retornado
Valor retornado | Descrição |
---|---|
-m |
O cursor é populado de forma assíncrona. O valor retornado (-m) é o número de linhas atualmente no conjunto de chaves. |
-1 |
O cursor é dinâmico. Como os cursores dinâmicos refletem todas as alterações, o número de linhas que se qualificam para o cursor é alterado constantemente. O cursor não recupera necessariamente todas as linhas qualificadas. |
0 |
Nenhum cursor está aberto, nenhuma linha qualificada para o último cursor aberto ou o cursor aberto por último está fechado ou desalocado. |
n |
A tabela está totalmente populada. O valor retornado (n) é o número total de linhas no cursor. |
Comentários
@@CURSOR_ROWS
retorna um número negativo se o último cursor foi aberto de forma assíncrona. Os cursores estáticos ou de driver de conjunto de chaves serão abertos de forma assíncrona se o valor do sp_configure
limite do cursor exceder 0
e o número de linhas no conjunto de resultados do cursor exceder o limite do cursor.
Exemplos
Este exemplo declara um cursor e usa SELECT
para exibir o valor de @@CURSOR_ROWS
. A configuração tem um valor de 0
antes de o cursor ser aberto e um valor de -1
para indicar que o conjunto de chaves do cursor é populado assincronamente.
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
Estes são os conjuntos de resultados.
-----------
0
LastName (No column name) ROWSTAT
--------- ----------------- ---------
Sánchez -1 NULL
-----------
-1