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 di 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 la documentazione delle versioni precedenti.

Osservazioni:

Quando edizione Standard T NOCOUNT è ON, il conteggio non viene restituito. Il conteggio viene restituito quando SET NOCOUNT è impostata su OFF.

La funzione @@ROWCOUNT viene aggiornata anche quando edizione Standard T NOCOUNT è ON.

L'opzione SET NOCOUNT ON impedisce l'invio di messaggi DONEINPROC al client per ogni istruzione di 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 di edizione Standard T NOCOUNT su ON può offrire un miglioramento significativo delle prestazioni, perché il traffico di rete è notevolmente ridotto.

L'impostazione specificata con SET NOCOUNT è attiva in fase di esecuzione, 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 il messaggio "(5 rows affected)" verrà restituito solo ai client della prima istruzione SELECT.

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

Vedi anche