Partilhar via


NÚMERO DEFINIDO (Transact-SQL)

Aplica-se a:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsArmazém no Microsoft FabricBase de dados SQL no Microsoft Fabric

Controla se uma mensagem que mostra o número de linhas afetadas por uma instrução Transact-SQL ou procedimento armazenado é devolvida após o conjunto de resultados. Esta mensagem é um conjunto de resultados extra.

Transact-SQL convenções de sintaxe

Sintaxe

SET NOCOUNT { ON | OFF }

Observações

Quando SET NOCOUNT é ON, a contagem não é devolvida. Quando SET NOCOUNT é OFF, a contagem é devolvida.

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

SET NOCOUNT ON impede o envio de DONEINPROC mensagens ao cliente para cada instrução num 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 Transact-SQL loops, definir SET NOCOUNT para ON pode proporcionar um aumento significativo de desempenho, porque o tráfego de rede é muito reduzido.

A definição especificada por SET NOCOUNT está em vigor em tempo de execução ou execução e não em tempo de análise.

Para visualizar a definição atual desta definição, execute a seguinte consulta.

DECLARE @NOCOUNT VARCHAR(3) = 'OFF';

IF ((512 & @@OPTIONS) = 512)
    SET @NOCOUNT = 'ON';

SELECT @NOCOUNT AS NOCOUNT;

Permissions

Requer adesão à função pública de .

Examples

O exemplo seguinte impede que a mensagem sobre o número de linhas afetadas seja exibida. No exemplo seguinte, (5 rows affected) só é devolvido aos clientes a partir da primeira SELECT instrução.

USE AdventureWorks2022;
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