SET NOCOUNT 升级后处理 SQL 调用时出错

Unh*_*ean 13 sql-server-2008 sql-server sql-server-2014 sp-configure

我们正在使用新服务器和更新版本的 Microsoft SQL Server 升级我们的测试环境,但遇到了问题。

在新服务器上,我们的旧代码在执行某些存储过程时会出现“对象关闭时不允许操作”。此消息从未出现在旧服务器上。当我们追踪到它时,可以通过添加SET NOCOUNT ON;到存储过程来解决问题。

我查看了数据库上的默认值,没有看到与默认值相关的不同设置(SQL Server 2008 与 SQL Server 2014)。

我应该查看什么设置来全局解决此问题,而无需添加SET NOCOUNT ON到一千个存储过程?

Han*_*non 16

SQL Server 配置有一个选项,相应地称为 ,user options可以使用sp_configure系统存储过程设置该选项。我写了一篇关于SQL Server Science的博客文章,展示了如何检查和设置用户选项。

简而言之,您可以使用以下命令从旧服务器获取“配置值”:

EXEC sys.sp_configure 'user options';
Run Code Online (Sandbox Code Playgroud)

然后,通过以下方式将新服务器设置为使用相同的选项:

EXEC sys.sp_configure 'user options', <config value>;
RECONFIGURE
Run Code Online (Sandbox Code Playgroud)

(用旧服务器中的值替换 <config value>)。