Partilhar via


DEFINIR A CONTAGEM DE LINHAS (Transact-SQL)

Aplica-se a:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsSistema de Plataforma de Análise (PDW)Base de dados SQL no Microsoft Fabric

Faz com que o SQL Server pare de processar a consulta após o número especificado de linhas ser devolvido.

Transact-SQL convenções de sintaxe

Sintaxe

SET ROWCOUNT { number | @number_var }   

Arguments

número | @number_var
É o número, um inteiro, de linhas a processar antes de interromper a consulta específica.

Observações

Importante

Usar SET ROWCOUNT não afetará as instruções DELETE, INSERT e UPDATE numa futura versão do SQL Server. Evite usar SET ROWCOUNT com instruções DELETE, INSERT e UPDATE em novos trabalhos de desenvolvimento, e planeie modificar aplicações que já o utilizam. Para um comportamento semelhante, use a sintaxe TOP. Para obter mais informações, consulte TOP (Transact-SQL).

Para ativar esta opção de modo a que todas as linhas sejam devolvidas, especifique SET ROWCOUNT 0.

Definir a opção SET ROWCOUNT faz com que a maioria das instruções Transact-SQL pare de processar quando são afetadas pelo número especificado de linhas. Isto inclui os gatilhos. A opção ROWCOUNT não afeta os cursores dinâmicos, mas limita o conjunto de linhas de keyset e cursores insensíveis. Esta opção deve ser usada com cautela.

SET ROWCOUNT sobrepõe-se à palavra-chave da instrução SELECT TOP se o número de linhas for o valor mais pequeno.

A definição de SET ROWCOUNT é definida em tempo de execução ou execução e não em tempo de análise sintética.

Permissions

Requer a participação na função pública.

Examples

SET ROWCOUNT para o processamento após o número especificado de linhas. No exemplo seguinte, note-se que mais de 500 linhas cumprem os critérios de Quantity menos que 300. No entanto, após aplicar o SET ROWCOUNT, pode ver que nem todas as linhas foram devolvidas.

USE AdventureWorks2022;  
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 e 4 devolve todas as linhas para demonstrar que apenas 4 linhas são devolvidas.

SET ROWCOUNT 4;  
SELECT *  
FROM Production.ProductInventory  
WHERE Quantity < 300;  
GO  
  
-- (4 row(s) affected)

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

SET ROWCOUNT para o processamento após o número especificado de linhas. No exemplo seguinte, note-se que mais de 20 linhas cumprem os critérios de AccountType = 'Assets'. No entanto, após aplicar o SET ROWCOUNT, pode ver que nem todas as linhas foram devolvidas.

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

Para devolver todas as linhas, defina ROWCOUNT a 0.

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

Ver também

Instruções SET (Transact-SQL)