sp_set_session_context (Transact-SQL)
適用対象: SQL Server 2016 (13.x) 以降 Azure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsMicrosoft Fabric の SQL 分析エンドポイントMicrosoft Fabric のウェアハウス
セッション コンテキストにキーと値のペアを設定します。
構文
sp_set_session_context
[ @key = ] N'key'
, [ @value = ] 'value'
[ , [ @read_only = ] read_only ]
[ ; ]
引数
[ @key = ] N'key'
設定されているキー。 @keyは sysname で、既定値はありません。 キーの最大サイズは 128 バイトです。
[ @value = ] 'value'
指定したキーの値。 @valueはsql_variantで、既定値は NULL
. 値 NULL
を設定すると、メモリが解放されます。 最大サイズは 8,000 バイトです。
[ @read_only = ] read_only
論理接続で指定したキーを変更できるかどうかを示すフラグ。 @read_onlyは既定値0
のビットです。
- 指定したキーの値を、この論理接続で再度変更できない場合
1
。 - 場合
0
は、値を変更できます。
アクセス許可
すべてのユーザーは、各自のセッションのセッション コンテキストを設定できます。
解説
他のストアド プロシージャと同様に、リテラルと変数 (式や関数呼び出しではなく) のみをパラメーターとして渡すことができます。
セッション コンテキストの合計サイズは 1 MB に制限されます。 この制限を超える値を設定すると、ステートメントは失敗します。 sys.dm_os_memory_objects (Transact-SQL) で全体的なメモリ使用量を監視できます。
sys.dm_os_memory_cache_counters (Transact-SQL) に対して次のようにクエリを実行することで、全体的なメモリ使用量を監視できます。
SELECT * FROM sys.dm_os_memory_cache_counters WHERE type = 'CACHESTORE_SESSION_CONTEXT';
例
A. セッション コンテキストを設定して返す
次の例では、セッションのコンテキスト キー language
を設定し、その後、値 English
を指定して返す方法を示します。
EXEC sys.sp_set_session_context @key = N'language', @value = 'English';
SELECT SESSION_CONTEXT(N'language');
次の例では、省略可能な読み取り専用フラグの使用を示しています。
EXEC sys.sp_set_session_context @key = N'user_id', @value = 4, @read_only = 1;
B. クライアントの関連付け ID を設定して返す
次の例は、値12323ad
が . のセッション コンテキスト キーclient_correlation_id
を設定および取得する方法を示しています。
値を設定します。
EXEC sp_set_session_context 'client_correlation_id', '12323ad';
値を取得します。
SELECT SESSION_CONTEXT(N'client_correlation_id');
関連するコンテンツ
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示