web-dev-qa-db-ja.com

アップグレード後のSQL呼び出しの処理におけるSET NOCOUNTエラー

新しいサーバーと更新されたバージョンのMicrosoft SQL Serverでテスト環境をアップグレードしており、問題が発生しています。

新しいサーバーでは、一部のストアドプロシージャを実行すると、古いコードは「オブジェクトが閉じているときは操作が許可されません」を受け取ります。このメッセージは、古いサーバーには表示されませんでした。追跡すると、ストアドプロシージャにSET NOCOUNT ON;を追加することで問題を解決できます。

データベースのデフォルトを確認したところ、デフォルトに関連して異なる設定(SQL Server 2008とSQL Server 2014)はありませんでした。

1000のストアドプロシージャにSET NOCOUNT ONを追加する必要なしに、これをグローバルに解決するには、どの設定を確認する必要がありますか?

13

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>を古いサーバーの値に置き換えます)。

16
Max Vernon