Compartilhar via


@@CURSOR_ROWS (Transact-SQL)

Retorna o número de linhas de qualificação atualmente no último cursor aberto na conexão. Para melhorar o desempenho, o MicrosoftSQL Server pode popular cursores estáticos e conjuntos de chaves grandes assincronamente. @@CURSOR_ROWS pode ser chamado para determinar que o número das linhas que se qualificam para um cursor é recuperado no momento em que @@CURSOR_ROWS é chamado.

Ícone de vínculo de tópicoConvenções de sintaxe Transact-SQL

Sintaxe

@@CURSOR_ROWS

Tipos de retorno

inteiro

Valor de retorno

Valor de retorno

Descrição

-m

A tabela de cursor é populada 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 são alterados constantemente. Nunca se pode afirmar de forma definitiva que todas as linhas qualificadas foram recuperadas.

0

Nenhum cursor foi aberto, nenhuma linha se qualificou para o último cursor aberto ou o último cursor aberto foi fechado ou desalocado.

n

A tabela está totalmente populada. O valor retornado (n) é o número total de linhas no cursor.

Comentários

O número retornado por @@CURSOR_ROWS será negativo se o último cursor tiver sido aberto assincronamente. Cursores controlados por conjunto de chaves ou estáticos serão abertos assincronamente se o valor do sp_configurecursor threshold for maior que 0 e o número de linhas no conjunto de resultados do cursor for maior que 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 AdventureWorks;
GO
SELECT @@CURSOR_ROWS;
DECLARE Name_Cursor CURSOR FOR
SELECT LastName ,@@CURSOR_ROWS FROM Person.Contact;
OPEN Name_Cursor;
FETCH NEXT FROM Name_Cursor;
SELECT @@CURSOR_ROWS;
CLOSE Name_Cursor;
DEALLOCATE Name_Cursor;
GO           

Seguem os conjuntos de resultados:

-----------
0          

LastName       
---------------
Achong          

           
-----------
-1