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 的最佳地点在哪里?的主要内容,如果未能解决你的问题,请参考以下文章