web-dev-qa-db-ja.com

SSMS(SQLサーバー管理スタジオ)SQLサーバーのANSI設定を無視する方法

Management Studioのオプション

Management Studioの[ツール]-> [オプション]-> [クエリ実行]-> [SQL Server]には、設定されているオプションがあり、これらはデータベースレベルで設定されている同じオプションよりも優先されます。

enter image description here

enter image description here

データベースレベルのオプション

management Studioでデータベースを右クリックすると、いくつかのオプションのデフォルトが何であるかを確認できます(下の図の黄色)

enter image description here

sys.databases を使用すると、T_SQLを使用してこれらのオプションを取得できます。

enter image description here

セッションレベルのオプション

sys.dm_exec_sessions を使用すると、現在のセッションに設定されているオプションを取得できます。

enter image description here

質問

データベース設定がManagement Studio設定よりも優先されるようにする方法はありますか?

私は計画を作成することを考え、 OPTION(USE PLAN) を使用しましたが、この質問の範囲を超える他の結果があります。

5

サーバー上で発生するすべての接続に対してデータベースのデフォルトを強制することが可能かどうかを尋ねる場合は、いいえ。これらのデフォルトは、接続レベルで矛盾するものが設定されていない場合にのみ有効になります。

SSMSの個々のバッチでは、SET ANSI_NULLS ONSET ANSI_NULLS OFFSET QUOTED_IDENTIFIER ONなどのステートメントを使用して、次のステートメントの解釈方法を制御できます。

ストアドプロシージャでは、少し複雑です。
プロシージャが作成されると、ANSI_NULLSオプションとQUOTED_IDENTIFIERオプションの現在の値が記憶され、そのプロシージャの呼び出し内で使用されますが、他の設定の場合は同じではありませんARITHABORTおよびANSI_PADDINGS-動作を修正するために手順でSET <setting> ON/OFFを使用する必要がある場合。この状況の詳細については、製品ドキュメントの CREATE PROCEDURE(Transact-SQL) の相互運用性セクションを参照してください。

10
David Spillett