对于在专用SQL Server上运行的大型数据库(数千个存储过程),最好在每个存储过程的顶部包含SET NOCOUNT ON
,或者在服务器级别设置该选项(属性 - >连接 - >“无计数”复选框)?这听起来像DRY原则(“不要重复自己”),并且选项应该只在一个地方设置。如果SQL Server还托管了其他数据库,则会反对在服务器级别设置它,因为其他应用程序可能依赖于它。哪里是SET NOCOUNT
的最佳位置?
答案 0 :(得分:2)
使其成为服务器的默认设置(除历史原因外)。我从一开始就为所有服务器执行此操作。有没有想过为什么它是SET NOCOUNT ON而不是SET COUNT OFF?这是因为在Sybase的日子里,唯一的用户界面是CLI;当查询可能没有显示任何结果时显示计数是很自然的,因此没有迹象表明它已完成。
答案 1 :(得分:1)
由于它是一个专用服务器,我会在服务器级别设置它,以避免必须将它添加到每个存储过程。 唯一的问题是如果你想要一个没有无计数的存储过程。