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 SQL 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.

Aplica-se a: SQL Server (SQL Server 2008 até a versão atual), Banco de dados SQL do Windows Azure (versão inicial até a versão atual).

Ícone de vínculo de tópico Convenções da sintaxe Transact-SQL

Sintaxe

@@CURSOR_ROWS

Tipos de retorno

integer

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 de sp_configure cursor 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

O exemplo seguinte 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 AdventureWorks2012;
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

---------------

Sanchez

-----------

-1

Consulte também

Referência

funções de cursor (Transact-SQL)

OPEN (Transact-SQL)