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

SE APLICA A: síSQL Server síAzure SQL Database síAzure SQL Data Warehouse noAlmacenamiento de datos paralelos APPLIES TO: yesSQL Server yesAzure SQL Database yesAzure SQL Data Warehouse noParallel Data Warehouse

Evita que se devuelva el mensaje que muestra el recuento del número de filas afectadas por una instrucción o un procedimiento almacenado de Transact-SQLTransact-SQL como parte del conjunto de resultados.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.

Icono de vínculo de tema Convenciones de sintaxis de Transact-SQLTopic link icon Transact-SQL Syntax Conventions

SintaxisSyntax

  
SET NOCOUNT { ON | OFF }   

NotasRemarks

Si se establece SET NOCOUNT en ON, no se devuelve el recuento.When SET NOCOUNT is ON, the count is not returned. Cuando SET NOCOUNT es OFF, sí se devuelve ese número.When SET NOCOUNT is OFF, the count is returned.

La función @@ROWCOUNT se actualiza incluso cuando SET NOCOUNT está en ON.The @@ROWCOUNT function is updated even when SET NOCOUNT is ON.

SET NOCOUNT ON impide el envío al cliente de mensajes DONE_IN_PROC por cada instrucción de un procedimiento almacenado.SET NOCOUNT ON prevents the sending of DONE_IN_PROC messages to the client for each statement in a stored procedure. En los procedimientos almacenados que contengan varias instrucciones que no devuelven mucha información real o en los procedimientos que contengan bucles de Transact-SQLTransact-SQL, establecer SET NOCOUNT en ON puede suponer una mejora significativa del rendimiento, ya que el tráfico de la red se reduce en gran medida.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.

La configuración especificada por SET NOCOUNT está activa en tiempo de ejecución, no en tiempo de análisis.The setting specified by SET NOCOUNT is in effect at execute or run time and not at parse time.

Para ver la configuración actual de este valor, ejecute la consulta siguiente.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;  
  

PermisosPermissions

Debe pertenecer al rol public .Requires membership in the public role.

EjemplosExamples

En este ejemplo no se muestra el mensaje que indica el número de filas afectado.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  

Consulte tambiénSee Also

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