SQL SET NOCOUNT (Transact-SQL)

SQL SET NOCOUNT (Transact-SQL) - 不显示行数结果集的返回消息

功能描述:停止显示受Transact-SQL语句或存储过程影响的行数作为结果集的一部分返回的消息。(使返回的结果中不包含有关受 Transact-SQL 语句影响的行数的信息。)

原型:

SET NOCOUNT { ON | OFF }

说明:

  • 当SET NOCOUNT为ON时,不返回计数。当SET NOCOUNT关闭时,将返回计数。
  • @@ROWCOUNT函数即使在SET NOCOUNT打开时也会更新。
  • SET NOCOUNT ON禁止将DONE_IN_PROC消息发送到存储过程中的每个语句的客户端。对于包含多个不返回太多实际数据的语句的存储过程,或对于包含Transact-SQL循环的过程,将SET NOCOUNT设置为ON可以显著提高性能,因为网络流量大大减少。
  • 在 Transact-SQL 语句(如 SELECT、INSERT、 UPDATE 和 DELETE)结束时将不会在查询结果中显示"nn rows affected"。
  • SET NOCOUNT指定的设置在执行或运行时生效,而不是在解析时生效。

查看此设置的当前设置示例:

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

以下示例阻止显示有关受影响行数的消息

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

 

创建时间:2020.10.14  更新时间:

 

原文地址:https://www.cnblogs.com/guorongtao/p/13814689.html