SET NOCOUNT (Transact-SQL)SET NOCOUNT (Transact-SQL)

S’APPLIQUE À : ouiSQL Server (à partir de 2008) ouiAzure SQL Database ouiAzure SQL Data Warehouse nonParallel Data Warehouse APPLIES TO: yesSQL Server (starting with 2008) yesAzure SQL Database yesAzure SQL Data Warehouse noParallel Data Warehouse

Empêche le message indiquant le nombre de lignes concernées par une instruction ou une procédure stockée Transact-SQLTransact-SQL d'être retourné avec le jeu de résultats.Stops the message that shows the count of the number of rows affected by a Transact-SQLTransact-SQL statement or stored procedure from being returned as part of the result set.

Icône de lien de rubrique Conventions de la syntaxe Transact-SQLTopic link icon Transact-SQL Syntax Conventions

SyntaxeSyntax

  
SET NOCOUNT { ON | OFF }   

Notes Remarks

Si la valeur de SET NOCOUNT est définie à ON, ce nombre n'est pas renvoyé.When SET NOCOUNT is ON, the count is not returned. Si la valeur de SET NOCOUNT est définie à OFF, ce nombre est renvoyé.When SET NOCOUNT is OFF, the count is returned.

La fonction @@ROWCOUNT est mise à jour, même quand SET NOCOUNT est défini à ON.The @@ROWCOUNT function is updated even when SET NOCOUNT is ON.

SET NOCOUNT ON empêche l'envoi de messages DONE_IN_PROC au client pour chaque instruction d'une procédure stockée.SET NOCOUNT ON prevents the sending of DONE_IN_PROC messages to the client for each statement in a stored procedure. Dans le cas de procédures stockées contenant plusieurs instructions qui ne retournent que peu de données, ou pour els procédures qui contiennent des boucles Transact-SQLTransact-SQL, la définition de SET NOCOUNT à ON peut améliorer considérablement les performances car le trafic réseau est sensiblement réduit.For stored procedures that contain several statements that do not return much actual data, or for procedures that contain Transact-SQLTransact-SQL loops, setting SET NOCOUNT to ON can provide a significant performance boost, because network traffic is greatly reduced.

Le paramètre spécifié par SET NOCOUNT est appliqué lors de l'exécution, et non pas lors de l'analyse.The setting specified by SET NOCOUNT is in effect at execute or run time and not at parse time.

Pour afficher la valeur actuelle de ce paramètre, exécutez la requête suivante.To view the current setting for this setting, run the following query.

DECLARE @NOCOUNT VARCHAR(3) = 'OFF';  
IF ( (512 & @@OPTIONS) = 512 ) SET @NOCOUNT = 'ON';  
SELECT @NOCOUNT AS NOCOUNT;  
  

PermissionsPermissions

Nécessite l'appartenance au rôle public .Requires membership in the public role.

ExemplesExamples

L'exemple suivant empêche l'affichage du message indiquant le nombre de lignes concernées.The following example prevents the message about the number of rows affected from being displayed.

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

 Voir aussiSee Also

@@ROWCOUNT (Transact-SQL) @@ROWCOUNT (Transact-SQL)
Instructions SET (Transact-SQL)SET Statements (Transact-SQL)