SET NOCOUNT 的最佳地点在哪里?

Posted

技术标签:

【中文标题】SET NOCOUNT 的最佳地点在哪里?【英文标题】:Where's the best place to SET NOCOUNT? 【发布时间】:2009-01-19 18:05:45 【问题描述】:

对于在专用 SQL Server 上运行的大型数据库(数千个存储过程),最好在每个存储过程的顶部包含 SET NOCOUNT ON,还是在服务器级别设置该选项(属性 -> 连接- >“无计数”复选框)?听起来 DRY 原则(“不要重复自己”)适用,并且该选项应该设置在一个地方。如果 SQL Server 还托管其他数据库,那将反对在服务器级别设置它,因为其他应用程序可能依赖它。 SET NOCOUNT哪里最好?

【问题讨论】:

【参考方案1】:

将其设为服务器的默认值(除非出于历史原因,否则会设为默认值)。我从一开始就为所有服务器执行此操作。有没有想过为什么它是 SET NOCOUNT ON 而不是 SET COUNT OFF?这是因为早在 Sybase 时代,唯一的 UI 就是 CLI。当查询可能没有结果时显示计数是很自然的,因此没有指示它已完成。

【讨论】:

【参考方案2】:

由于它是一个专用服务器,我会将其设置在服务器级别,以避免将其添加到每个存储过程中。 唯一会出现的问题是,如果您想要一个没有无计数的存储过程。

【讨论】:

以上是关于SET NOCOUNT 的最佳地点在哪里?的主要内容,如果未能解决你的问题,请参考以下文章

[转]SET NOCOUNT ON

set nocount on

开始学习 servlet/tomcat 的最佳地点在哪里? [关闭]

SET NOCOUNT ON 使用情况

SET NOCOUNT ON/OFF

sql中的SET NOCOUNT ON/OFF