Compartilhar via


SET ROWCOUNT (Transact-SQL)

Aplica-se a: SQL Server Banco de Dados SQL do Azure Instância Gerenciada de SQL do Azure Azure Synapse Analytics Analytics Platform System (PDW)

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

Convenções de sintaxe de Transact-SQL

Sintaxe

SET ROWCOUNT { number | @number_var }   

Argumentos

number | @number_var
É o número inteiro de filas 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 saber mais, confira 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 à 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 AdventureWorks2022;  
GO  
SELECT count(*) AS Count  
FROM Production.ProductInventory  
WHERE Quantity < 300;  
GO  

Veja a seguir 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)

Exemplos: Azure Synapse Analytics e PDW (Analytics Platform System)

SET ROWCOUNT para de processar depois do número especificado de linhas. No exemplo a seguir, observe que mais de 20 linhas atendem aos critérios de AccountType = 'Assets'. Porém, depois de aplicar SET ROWCOUNT, você pode ver que nem todas as linhas foram retornadas.

-- Uses AdventureWorks  
  
SET ROWCOUNT 5;  
SELECT * FROM [dbo].[DimAccount]  
WHERE AccountType = 'Assets';  

Para retornar todas as linhas, defina ROWCOUNT como 0.

-- Uses AdventureWorks  
  
SET ROWCOUNT 0;  
SELECT * FROM [dbo].[DimAccount]  
WHERE AccountType = 'Assets';  

Consulte Também

Instruções SET (Transact-SQL)