SQL Server でのオプションの使用
Microsoft SQL Server 2005 には、SQL ステートメントの結果やパフォーマンスに影響するオプションが用意されています。これらのオプションは次の方法で設定できます。
- インスタンス全体の構成オプションを設定するには、sp_configure ストアド プロシージャを使用します。
- データベース レベルのオプションを設定するには、ALTER DATABASE ステートメントを使用します。
- データベースの互換性レベルを設定するには、sp_dbcmptlevel ストアド プロシージャを使用します。
- バッチ レベルのオプション (SET オプション) を指定するには、SET ANSI_PADDING や SET ANSI_NULLS などの SET ステートメントを使用します。
メモ : バッチレベル オプションは、以前のバージョンの 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 オプションです。
オプションの階層
オプションが複数のレベルでサポートされるときは、次の階層が設定されます。
- インスタンス オプションよりもデータベース オプションが優先されます。
- データベース オプションよりも SET オプションが優先されます。
- SET オプションよりもヒントが優先されます。
メモ : |
---|
動的な SQL バッチ内の SET オプションの設定が有効なのは、そのバッチの範囲内だけです。 |
メモ : |
---|
QUOTED_IDENTIFIER や ANSI_NULLS などの SET オプションは、ストアド プロシージャの定義と共に保存されます。したがって、明示的に設定された異なる値よりも優先されます。 |
参照
概念
SET オプション
データベース オプション
インスタンスのオプション
データベース互換性レベル オプション