SET NOCOUNT ON 作用
SET NOCOUNT ON 作用一、语法
SET NOCOUNT { ON | OFF }
二、说明
1、当 SET NOCOUNT 为 ON 时,不返回计数。当 SET NOCOUNT 为 OFF 时,返回计数。
2、即使当SET NOCOUNT为ON时,也更新@@ROWCOUNT 函数。当SET NOCOUNT为ON 时,将不给客户端发送存储过程中的每个语句的DONE_IN_PROC信息。当使用提供的实用工具执行查询时,在Transact-SQL语句(如SELECT、INSERT、UPDATE 和DELETE)结束时将不会在查询结果中显示"nn rows affected"。
3、当 SET NOCOUNT 为 ON 时,将不向客户端发送存储过程中每个语句的 DONE_IN_PROC 消息。如果存储过程中包含一些并不返回许多实际数据的语句,或者如果过程包含 Transact-SQL 循环,网络通信流量便会大量减少,因此,将 SET NOCOUNT 设置为 ON 可显著提高性能。
4、SET NOCOUNT 指定的设置是在执行或运行时生效,而不是在分析时生效。
5、对于包含了很多不返回实际数据的语句的存储过程,使用Set NoCount on可以很大的提高性能,因为可以减少网络流量。
6、如果存储过程中有多个语句,则默认情况下,在每个语句完成时给客户端应用程序发送一条消息,详细说明每个语句所影响的行数。大多数应用程序不需要这些消息。如果确信应用程序不需要他们,可以禁用这些消息,以提高慢速网络的性能。我们就可以通过SET NOCOUNT会话设置为应用程序禁用这些消息。(其实大部分应用程序都不需要这个值)
7、当没有必要返回给客户端“n 行受到影响”消息时,应该在存储过程的开始设置 SET NOCOUNT ON,在存储过程结束时设置SET NOCOUNT OFF.