SQL Server でのオプションの使用

Microsoft SQL Server 2005 には、SQL ステートメントの結果やパフォーマンスに影響するオプションが用意されています。これらのオプションは次の方法で設定できます。

  • インスタンス全体の構成オプションを設定するには、sp_configure ストアド プロシージャを使用します。
  • データベース レベルのオプションを設定するには、ALTER DATABASE ステートメントを使用します。
  • データベースの互換性レベルを設定するには、sp_dbcmptlevel ストアド プロシージャを使用します。
  • バッチ レベルのオプション (SET オプション) を指定するには、SET ANSI_PADDING や SET ANSI_NULLS などの SET ステートメントを使用します。
    ms191203.note(ja-jp,SQL.90).gifメモ :
    バッチレベル オプションは、以前のバージョンの SQL Server、および複数のアクティブな結果セット (MARS) が無効になっている接続では、接続レベルのオプションと呼ばれます。
  • クエリ ヒント、テーブル ヒント、結合ヒントなどのステートメント レベル オプションを指定するには、個別の Transact-SQL ステートメントを使用します。詳細については、「ヒント (Transact-SQL)」を参照してください。

ODBC アプリケーションでは、ANSI SET オプションのいくつかを制御する接続オプションを指定できます。SQL Native Client OLE DB Provider for SQL Server と SQL Native Client ODBC ドライバではどちらも、一部の SET オプションが既定で設定されます。

この場合、SET オプションの変更や、SET ステートメントを使用した SET オプションの設定は避ける必要があります。代わりに、ODBC や OLE DB の接続プロパティを使用して、接続レベルで SET オプションを設定することをお勧めします。または、sp_configure ストアド プロシージャを使用して、SET オプションの設定を変更できます。

sp_configure には、user options オプションが用意されています。これにより、いくつかの SET オプションの既定値を変更できます。user options は、インスタンス オプションのように見えますが、実際には SET オプションです。

オプションの階層

オプションが複数のレベルでサポートされるときは、次の階層が設定されます。

  1. インスタンス オプションよりもデータベース オプションが優先されます。
  2. データベース オプションよりも SET オプションが優先されます。
  3. SET オプションよりもヒントが優先されます。
ms191203.note(ja-jp,SQL.90).gifメモ :
動的な SQL バッチ内の SET オプションの設定が有効なのは、そのバッチの範囲内だけです。
ms191203.note(ja-jp,SQL.90).gifメモ :
QUOTED_IDENTIFIER や ANSI_NULLS などの SET オプションは、ストアド プロシージャの定義と共に保存されます。したがって、明示的に設定された異なる値よりも優先されます。

参照

概念

SET オプション
データベース オプション
インスタンスのオプション
データベース互換性レベル オプション

ヘルプおよび情報

SQL Server 2005 の参考資料の入手