SET NOCOUNT (Transact-SQL)

Se aplica a:yesSQL Server (todas las versiones compatibles) YesAzure SQL Database YesAzure SQL Managed Instance yesAzure Synapse Analytics

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-SQL como parte del conjunto de resultados.

Topic link iconConvenciones de sintaxis de Transact-SQL

Sintaxis

  
SET NOCOUNT { ON | OFF }   

Nota:

Para ver la sintaxis de Transact-SQL para SQL Server 2014 y versiones anteriores, consulte Versiones anteriores de la documentación.

Observaciones

Si se establece SET NOCOUNT en ON, no se devuelve el recuento. Cuando SET NOCOUNT es OFF, sí se devuelve ese número.

La función @@ROWCOUNT se actualiza incluso cuando SET NOCOUNT es ON.

SET NOCOUNT ON impide el envío al cliente de mensajes DONEINPROC por cada instrucción de un procedimiento almacenado. En los procedimientos almacenados que contengan varias instrucciones que no devuelven mucha información real o en los procedimientos que contengan bucles de Transact-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.

La configuración especificada por SET NOCOUNT está activa en tiempo de ejecución, no en tiempo de análisis.

Para ver la configuración actual de este valor, ejecute la consulta siguiente.

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

Permisos

Debe pertenecer al rol public .

Ejemplos

En este ejemplo no se muestra el mensaje que indica el número de filas afectado. En el ejemplo siguiente, "(5 filas afectadas)" solo se devolverá a los clientes desde la primera instrucción SELECT.

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én