SET NOCOUNT (Transact-SQL)

Aplica-se a: SQL Server (todas as versões com suporte) Banco de Dados SQL do Azure Instância Gerenciada de SQL do Azure Azure Synapse Analytics

Impede que a mensagem que mostra a contagem do número de linhas afetadas por uma instrução Transact-SQL ou por um procedimento armazenado seja retornada como parte do conjunto de resultados.

Topic link iconConvenções de sintaxe do Transact-SQL

Sintaxe

  
SET NOCOUNT { ON | OFF }   

Observação

Para ver a sintaxe do Transact-SQL para o SQL Server 2014 e versões anteriores, confira a Documentação das versões anteriores.

Comentários

Quando SET NOCOUNT é ON, a conta não é retornada. Quando SET NOCOUNT é OFF, a conta é retornada.

A função @@ROWCOUNT é atualizada mesmo quando SET NOCOUNT é ON.

SET NOCOUNT ON evita o envio de mensagens DONEINPROC ao cliente para cada instrução em um procedimento armazenado. Para procedimentos armazenados que contêm várias instruções que não retornam muitos dados reais, ou para procedimentos que contêm loops Transact-SQL, configurar SET NOCOUNT como ON pode fornecer um aumento significativo no desempenho, porque o tráfego de rede é reduzido consideravelmente.

A configuração especificada por SET NOCOUNT está em vigor na execução ou em tempo de execução e não no momento da análise.

Para exibir a configuração atual dessa configuração, execute a consulta a seguir.

DECLARE @NOCOUNT VARCHAR(3) = 'OFF';  
IF ( (512 & @@OPTIONS) = 512 ) SET @NOCOUNT = 'ON';  
SELECT @NOCOUNT AS NOCOUNT;  
  

Permissões

Requer associação à função pública .

Exemplos

O exemplo a seguir evita que a mensagem sobre o número de linhas afetadas seja exibida. No exemplo a seguir, "(5 linhas afetadas)" só será retornado aos clientes da primeira instrução SELECT.

USE AdventureWorks2012;  
GO  
SET NOCOUNT OFF;  
GO  
-- Display the count message.  
SELECT TOP(5) LastName  
FROM Person.Person  
WHERE LastName LIKE 'A%';  
GO  
-- SET NOCOUNT to ON to no longer display the count message.  
SET NOCOUNT ON;  
GO  
SELECT TOP(5) LastName  
FROM Person.Person  
WHERE LastName LIKE 'A%';  
GO  
-- Reset SET NOCOUNT to OFF  
SET NOCOUNT OFF;  
GO  

Consulte Também