Sql-Server

SET NOCOUNT 升級後處理 SQL 呼叫時出錯

  • March 1, 2019

我們正在使用新伺服器和更新版本的 Microsoft SQL Server 升級我們的測試環境,但遇到了問題。

在新伺服器上,我們的舊程式碼在執行一些儲存過程時會得到“對象關閉時不允許操作”。此消息從未出現在舊伺服器上。當我們跟踪它時,可以通過添加SET NOCOUNT ON;到儲存過程來解決問題。

我查看了數據庫的預設設置,沒有發現與預設設置相關的不同設置(SQL Server 2008 與 SQL Server 2014)。

我應該查看什麼設置來全域解決此問題而無需添加SET NOCOUNT ON到一千個儲存過程?

SQL Server 配置有一個適當地稱為 的選項,user options可以使用sp_configure系統儲存過程進行設置。我在SQL Server Science上寫了一篇博文,展示瞭如何檢查和設置使用者選項。

簡而言之,您可以使用以下命令從舊伺服器獲取“配置值”:

EXEC sys.sp_configure 'user options';

然後,通過以下方式設置新伺服器以使用相同的選項:

EXEC sys.sp_configure 'user options', <config value>;
RECONFIGURE

(將 <config value> 替換為舊伺服器中的值)。

引用自:https://dba.stackexchange.com/questions/230905