SQL Server 设置 NOCOUNT 开/关

vig*_*esh 1 sql-server sql-server-2005 nocount sql-server-2008 sql-server-2012

为了获得更好的性能,我们在 SP 内部使用Set NOCOUNT

是否必须在 SP 末尾提及Set NOCOUNT off

如果不是,它会伤害任何地方吗?

谢谢

Sta*_*ser 5

set nocount on将禁用受影响的 X 行。消息 SQL 返回。在某些情况下,由于客户端执行存储过程的不良影响,此消息被抑制。

set nocount off将取消这种压制。但是,set nocount on 是一个范围设置,默认情况下,无论如何离开范围时都会关闭。

现在,有set nocount off必要吗?不,因为执行的任何新命令都将在不同的范围内,并且默认情况下set nocount off始终有效。但正如上面评论中所述,这被认为是一种很好的做法,只是为了明确表明该设置将在 proc 执行完成后恢复正常。

Set NOCOUNT offSP末尾是否必须提及?- 不

如果不是,它会伤害任何地方吗?- 不