@@OPTIONS (Transact-SQL)
現在の SET オプションに関する情報を返します。
構文
@@OPTIONS
戻り値の型
integer
説明
オプションは SET コマンドまたは sp_configure user options 値の使用により発生します。 SET コマンドを使用して構成されたセッション値は sp_configure オプションをオーバーライドします。 多くのツール (Management Studio など) はセット オプションを自動的に構成します。 各ユーザーには、構成を表す @@OPTIONS 関数が用意されます。
SET ステートメントを使用することにより、特定のユーザー セッションに対して、言語とクエリ処理オプションを変更できます。 @@OPTIONS は ON または OFF に設定されるオプションのみを検出できます。
@@OPTIONS 関数は、オプションのビットマップをベース 10 (10 進数) の整数に変換して返します。 ビット設定はトピック「user options サーバー構成オプションの構成」で説明している場所に格納されます。
@@OPTIONS 値をデコードするには、@@OPTIONS によって返される整数をバイナリに変換し、上のテーブルで値を検索します。 たとえば、SELECT @@OPTIONS; が値 5496 を返す場合、Windows のプログラマ電卓 (calc.exe) を使用して、10 進数の 5496 をバイナリに変換します。 結果は 1010101111000 です。 左端の文字 (バイナリ 1、2、および 4) は 0 で、IMPLICIT_TRANSACTIONS および CURSOR_CLOSE_ON_COMMIT がオフであることを示します。 次の項目 (1000 位置の ANSI_WARNINGS) はオンです。 ビットマップで右方向に、オプションの一覧で下方向に、作業を続けます。 右端のオプションが 0 の場合、型変換により切り捨てられます。 ビットマップ 1010101111000 は実際には 001010101111000 で、15 のすべてのオプションを表します。
使用例
A. 変更が動作に影響を与える様子を示すデモ
以下の例は、CONCAT_NULL_YIELDS_NULL オプションの 2 つの異なる設定による、連結動作における違いを示しています。
SELECT @@OPTIONS AS OriginalOptionsValue;
SET CONCAT_NULL_YIELDS_NULL OFF;
SELECT 'abc' + NULL AS ResultWhen_OFF, @@OPTIONS AS OptionsValueWhen_OFF;
SET CONCAT_NULL_YIELDS_NULL ON;
SELECT 'abc' + NULL AS ResultWhen_ON, @@OPTIONS AS OptionsValueWhen_ON;
B. クライアント NOCOUNT 設定のテスト
次の例では、NOCOUNT ON を設定し、@@OPTIONS の値を調べます。 NOCOUNT ON オプションは、セッションで実行するすべてのステートメントごとに、要求するクライアントに対して影響を受ける行数に関するメッセージを戻さないようにします。 @@OPTIONS の値は、512 (0x0200) に設定されます。 これは NOCOUNT オプションを表します。 この例では、クライアントで NOCOUNT オプションが有効になっているかどうかを調べます。 たとえば、これはクライアントにおけるパフォーマンスの違いを調べるのに役立ちます。
SET NOCOUNT ON
IF @@OPTIONS & 512 > 0
RAISERROR ('Current user has SET NOCOUNT turned on.', 1, 1)