Condividi tramite


SET NOCOUNT (Transact-SQL)

Si applica a:SQL Server database SQL di Azure Istanza gestita di SQL di Azure Azure Synapse AnalyticsWarehouse in Microsoft Fabric

Controlla se un messaggio che mostra il numero di righe interessate da un'istruzione Transact-SQL o una stored procedure viene restituito dopo il set di risultati. Questo messaggio è un set di risultati aggiuntivo.

Convenzioni relative alla sintassi Transact-SQL

Sintassi

SET NOCOUNT { ON | OFF }

Nota

Per visualizzare la sintassi Transact-SQL per SQL Server 2014 (12.x) e versioni precedenti, vedere Documentazione delle versioni precedenti.

Osservazioni:

Quando SET NOCOUNT è ON, il conteggio non viene restituito. Quando SET NOCOUNT è OFF, viene restituito il conteggio.

La @@ROWCOUNT funzione viene aggiornata anche quando SET NOCOUNT è ON.

SET NOCOUNT ON impedisce l'invio di DONEINPROC messaggi al client per ogni istruzione in una stored procedure. Per le stored procedure che contengono diverse istruzioni che non restituiscono dati effettivi o per le procedure che contengono cicli Transact-SQL, l'impostazione SET NOCOUNT su ON può offrire un miglioramento significativo delle prestazioni, perché il traffico di rete è notevolmente ridotto.

L'impostazione specificata da SET NOCOUNT è attiva in fase di esecuzione o di esecuzione e non in fase di analisi.

Per visualizzare l'impostazione corrente per questa impostazione, eseguire la query riportata di seguito.

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

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

SELECT @NOCOUNT AS NOCOUNT;

Autorizzazioni

È richiesta l'appartenenza al ruolo public .

Esempi

Nell'esempio seguente viene bloccata la visualizzazione del messaggio relativo al numero di righe interessate dalla modifica. Nell'esempio seguente viene (5 rows affected) restituito solo ai client dalla prima SELECT istruzione.

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