SET NOCOUNT (Transact-SQL)
Si applica a: SQL Server
database SQL di Azure
Istanza gestita di SQL di Azure
Azure Synapse Analytics
Warehouse 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