对于SQL而言通常会在存储过程、触发器、函数,开头SET NOCOUNT ON,然后末尾再来个SET NOCOUNT OFF,SQL联机帮助中说:

关于SET NOCOUNT ON当 SET NOCOUNT 为 ON 时,将不给客户端发送存储过程中的每个语句的 DONE_IN_PROC 信息。当使用 Microsoft® SQL Server™ 提供的实用工具执行查询时,在 Transact-SQL 语句(如 SELECT、INSERT、UPDATE 和 DELETE)结束时将不会在查询结果中显示"nn rows affected"
关于SET NOCOUNT ON
关于SET NOCOUNT ON如果存储过程中包含的一些语句并不返回许多实际的数据,则该设置由于大量减少了网络流量,因此可显著提高性能。
关于SET NOCOUNT ON
关于SET NOCOUNT ON

PS:记得Paul Niielsen的《SQL 宝典》中说SET NOCOUNT ON对某些应用会有7%-10%的性能影响。关于SET NOCOUNT ON

在VS 的服务器资源管理器中建立存储过程,默认的模板第一句SQL就是SET NOCOUNT ON,看来它的影响真的得到公认(^_^,偶也学会这招拉)

有个疑问,没有在联机帮助中找到,就是SET NOCOUNT是对全局的影响,还是支队本存储过程,或者其他?

联机帮助中说:
关于SET NOCOUNT ONSET NOCOUNT 设置是在执行或运行时设置,而不是在分析时设置。
遗憾啊,智商低,没能理解。

写了两个存储过程
关于SET NOCOUNT ONALTER PROCEDURE dbo.StoredProcedure1    
关于SET NOCOUNT ON
AS
关于SET NOCOUNT ON    
SET NOCOUNT ON
关于SET NOCOUNT ON    
关于SET NOCOUNT ON    
SELECT 'sp1'        
关于SET NOCOUNT ON    
PRINT @@RowCount
关于SET NOCOUNT ON    
关于SET NOCOUNT ON    
EXEC dbo.StoredProcedure2
关于SET NOCOUNT ON    
关于SET NOCOUNT ON    
EXEC dbo.StoredProcedure3
关于SET NOCOUNT ON    
关于SET NOCOUNT ON    
SELECT 'sp1'
关于SET NOCOUNT ON    
PRINT @@RowCount
关于SET NOCOUNT ON    
关于SET NOCOUNT ON    
SET NOCOUNT OFF
关于SET NOCOUNT ON    
关于SET NOCOUNT ON    
RETURN
关于SET NOCOUNT ON

关于SET NOCOUNT ONALTER PROCEDURE dbo.StoredProcedure2     
关于SET NOCOUNT ON
AS
关于SET NOCOUNT ON    
SET NOCOUNT OFF    
关于SET NOCOUNT ON    
关于SET NOCOUNT ON    
SELECT 'sp2'        
关于SET NOCOUNT ON    
PRINT @@RowCount    
关于SET NOCOUNT ON    
关于SET NOCOUNT ON    
RETURN
关于SET NOCOUNT ON

关于SET NOCOUNT ONALTER PROCEDURE dbo.StoredProcedure3     
关于SET NOCOUNT ON
AS    
关于SET NOCOUNT ON    
SELECT 'sp3'        
关于SET NOCOUNT ON    
PRINT @@RowCount    
关于SET NOCOUNT ON    
关于SET NOCOUNT ON    
RETURN
关于SET NOCOUNT ON


关于SET NOCOUNT ON

上图是在osql中执行结果,
sp1 分别调用 sp2, sp3,
从结果,可以得出SEt NOCOUNT:
选项默认为OFF;
只会对本存储过程以及该所调用的存储过程产生影响;
子存储过程可以覆盖父存储过程的设置,不影响父存储过程;
子存储过程如果没有显示SET NOCOUNT,采用父存储过程的设置;
 
需要注意的是:
即使SET NOCOUNT ON,全局变量@@RowCount
当在VS的服务器资源管理器中,调试/运行存储过程时,输出窗口中总是会输出:
“没有行受影响”、“返回xx行”等语句

相关文章: