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

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

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

原型:

1
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指定的设置在执行或运行时生效,而不是在解析时生效。

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

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

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
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  更新时间:2021.02.05

 

posted on   滔Roy  阅读(341)  评论(0编辑  收藏  举报

编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
历史上的今天:
2019-10-14 Delphi 打印纸张选项设置参数

导航

点击右上角即可分享
微信分享提示