SET ROWCOUNT (Transact-SQL)

Faz o SQL Server parar o processamento de consulta depois que o número especificado de linhas for retornado.

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

Sintaxe

SET ROWCOUNT { number | @number_var } 

Argumentos

  • number | @number_var
    É o número inteiro de filas a ser processado antes de finalizar a consulta específica.

Comentários

Observação importanteImportante

Usar SET ROWCOUNT não irá afetar instruções DELETE, INSERT e UPDATE na próxima versão de SQL Server. Não use SET ROWCOUNT com instruções DELETE, INSERT e UPDATE em um novo trabalho de desenvolvimento e planeje modificar os aplicativos que a utilizam atualmente. Recomendamos também que você reescreva as instruções DELETE, INSERT e UPDATE que atualmente usam SET ROWCOUNT, para usar a sintaxe TOP. Para obter mais informações, consulte DELETE (Transact-SQL), INSERT (Transact-SQL) ou UPDATE (Transact-SQL).

A configuração da opção SET ROWCOUNT é ignorada para instruções INSERT, UPDATE e DELETE com base em tabelas remotas e exibições locais e remotas particionadas.

Para desligar esta opção de forma que todas as linhas sejam retornadas, especifique SET ROWCOUNT 0.

ObservaçãoObservação

Definindo a opção SET ROWCOUNT faz a maioria das instruções Transact-SQL deixar de processar quando elas forem afetadas pelo número especificado de linhas. Isto inclui gatilhos e instruções de modificação de dados como INSERT, UPDATE e DELETE. A opção ROWCOUNT não afeta cursores dinâmicos, mas limita o conjunto de linhas de conjunto de chaves e cursores insensíveis. Esta opção deve ser usada com precaução, principalmente com a instrução SELECT.

SET ROWCOUNT substituirá a palavra-chave TOP de instrução SELECT TOP se o número de linhas for o valor menor.

SET ROWCOUNT é ignorado em instruções INSERT, UPDATE e DELETE quando uma expressão TOP explícita for usada na mesma instrução. Isto inclui instruções nas quais INSERT é seguido por uma cláusula SELECT.

A configuração de SET ROWCOUNT é definida no momento da execução e não no momento da análise.

Permissões

Requer associação na função public.

Exemplos

SET ROWCOUNT deixa de processar depois do número especificado de linhas. No exemplo seguinte, note que 545 linhas atendem os critérios de Quantity menor que 300. Porém, do número de linhas retornado pela atualização, você não pode ver que todas as linhas foram processadas. ROWCOUNT afeta todas as instruções Transact-SQL.

USE AdventureWorks2008R2;
GO
SELECT count(*) AS Count
FROM Production.ProductInventory
WHERE Quantity < 300;
GO

Aqui está o conjunto de resultados.

Count

-----------

537

(1 row(s) affected)

Agora, defina ROWCOUNT para 4 e atualize todas as linhas com um Quantity menor que 300.

SET ROWCOUNT 4;
UPDATE Production.ProductInventory
SET Quantity = 400
WHERE Quantity < 300;
GO

(4 row(s) affected)

Consulte também

Referência