次の方法で共有


@@OPTIONS (Transact-SQL)

現在の SET オプションに関する情報を返します。

トピック リンク アイコン Transact-SQL 構文表記規則

構文

@@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)

関連項目

参照

構成関数 (Transact-SQL)

sp_configure (Transact-SQL)

概念

user options サーバー構成オプションの構成