SET ROWCOUNT (Transact-SQL)
Faz o SQL Server parar o processamento de consulta depois que o número especificado de linhas for retornado.
Convenções da sintaxe Transact-SQL
Sintaxe
SET ROWCOUNT { number | @number_var }
Argumentos
- number | @number\_var
É o número inteiro de linhas a serem processadas antes de finalizar a consulta específica.
Comentários
Importante |
---|
O uso de SET ROWCOUNT não afetará as instruções DELETE, INSERT e UPDATE em uma futura versão do SQL Server. Evite usar SET ROWCOUNT com instruções DELETE, INSERT e UPDATE em um novo trabalho de desenvolvimento e planeje modificar os aplicativos que a utilizam atualmente. Para um comportamento semelhante, use a sintaxe de TOP. Para obter mais informações, consulte TOP (Transact-SQL). |
Para desligar esta opção de forma que todas as linhas sejam retornadas, especifique SET ROWCOUNT 0.
A configuração da opção SET ROWCOUNT faz com que a maioria das instruções Transact-SQL parem de processar quando forem afetadas pelo número de linhas especificado. Isso inclui gatilhos. A opção ROWCOUNT não afeta cursores dinâmicos, mas limita o conjunto de linhas de conjunto de chaves e cursores sem distinção. Essa opção deve ser usada com cuidado.
SET ROWCOUNT substituirá a palavra-chave TOP da instrução SELECT TOP se o número de linhas for o menor valor.
A configuração de SET ROWCOUNT é definida no momento da execução ou em tempo de execução e não no momento da análise.
Permissões
Requer associação na função public.
Exemplos
SET ROWCOUNT para de processar depois do número especificado de linhas. No exemplo a seguir, observe que mais de 500 linhas atendem aos critérios de Quantity menor que 300. Porém, depois de aplicar SET ROWCOUNT, você pode ver que nem todas as linhas foram retornadas.
USE AdventureWorks2012;
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 como 4 e retorne todas as linhas para demonstrar que apenas quatro linhas são retornadas.
SET ROWCOUNT 4;
SELECT *
FROM Production.ProductInventory
WHERE Quantity < 300;
GO
(4 row(s) affected)