SET NOCOUNT (Transact-SQL)
S’applique à : SQL ServerAzure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Warehouse dans Microsoft Fabric
Vérifie si un message indiquant le nombre de lignes concernées par une instruction ou une procédure stockée Transact-SQL est retourné après le jeu de résultats. Ce message est un jeu de résultats supplémentaire.
Conventions de la syntaxe Transact-SQL
Syntaxe
SET NOCOUNT { ON | OFF }
Notes
Quand SET NOCOUNT
c’est ON
le cas, le nombre n’est pas retourné. Lorsque SET NOCOUNT
c’est OFF
le cas, le nombre est retourné.
La @@ROWCOUNT
fonction est mise à jour même lorsqu’elle SET NOCOUNT
est ON
.
SET NOCOUNT ON
empêche l’envoi de DONEINPROC
messages au client pour chaque instruction dans une procédure stockée. Pour les procédures stockées qui contiennent plusieurs instructions qui ne retournent pas beaucoup de données réelles ou pour les procédures qui contiennent des boucles Transact-SQL, le paramètre SET NOCOUNT
peut ON
fournir une amélioration significative des performances, car le trafic réseau est considérablement réduit.
Le paramètre spécifié est SET NOCOUNT
en vigueur au moment de l’exécution ou de l’exécution et non au moment de l’analyse.
Pour afficher la valeur actuelle de ce paramètre, exécutez la requête suivante.
DECLARE @NOCOUNT VARCHAR(3) = 'OFF';
IF ((512 & @@OPTIONS) = 512)
SET @NOCOUNT = 'ON';
SELECT @NOCOUNT AS NOCOUNT;
Autorisations
Nécessite l'appartenance au rôle public .
Exemples
L'exemple suivant empêche l'affichage du message indiquant le nombre de lignes concernées. Dans l’exemple suivant, (5 rows affected)
est retourné uniquement aux clients de la première SELECT
instruction.
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