オプションのデフォルトは OFF
です おそらく、このデータベースはデフォルトに一切手を加えずに作成およびスクリプト化されているためです。データベースが作成されると、基本的に model
から複製されます システム データベース、および SQL Server の新しいインストールでは、データベースの ANSI 設定は OFF
になります。 、これらの設定の一部 (ANSI_NULLS
など) にもかかわらず ) OFF
にしたくないオプションです 最新のデータベース アプリケーションに。実際、ANSI_NULLS
の場合、 特に、ドキュメントでは、それをまったくオフにする機能は非推奨
であると明記されています とはいえ、実際にそうなるまでにはまだ数年かかるでしょう。
そしてそこに問題があります:これらの設定はまだ OFF
のままです 古いアプリケーションのために、これらのオプションを ON
にする必要がありました 彼らの良さ(そして破壊的な変更)から恩恵を受けるのはいつですか。セッションで値が指定されていない場合、データベース設定が適用されます。
ただし、ほとんどのアプリケーションは できます これらの設定は、明示的でない場合はセッションで指定し、データ アクセス ライブラリを介して暗黙的に指定します。 SET ANSI_DEFAULTS
のドキュメントに従って
、一度に一連の設定を切り替えます:
DB-Library は古いアクセス ライブラリであり、一部の古いアプリケーションや、必要に応じて FreeTDS などのバッキング ソースとして使用されている古いアクセス ライブラリであるため、データベース設定を意図的または誤って使用するアプリケーションに出くわすことがよくありますが、これは
最高について これらのオプションの値は、ユース ケースに完全に依存します。古い動作を期待する古いアプリケーションをサポートする必要がある場合は、データベース設定を OFF
にしておくしかない場合があります。 .古いライブラリを介して接続するが、実際には最新の SQL セマンティクスを期待するアプリケーションがある場合は、それらを ON
にすることをお勧めします。 .他のすべてのアプリケーションでは、これらのオプションは、アプリケーション自体によってセッションごとに (不適切な) 正しい値に設定されている可能性が高く、構成内容は問題になりません。
個々のオプションと、それをいつ ON
にするかについての説明 または OFF
合理的な回答の限界を超えます。それぞれのドキュメントを参照して、独自のベスト プラクティスを策定してください。 SET
のようなものを許可できます 計算列のインデックスのオプション要件
ON
にするための一連のオプションが必要です。 それらを作成する前に (そして、それらは一般的にあると便利なものと見なされます)。