コンテキスト情報にはスコープがなく(言語変数スコープの意味で)、セッションの存続期間にバインドされます。一度設定されると、コンテキスト情報は、接続が閉じられるまで(セッションが終了するまで)、または新しい値が設定されるまで、設定された値のままになります。セッションでの実行は常にであるため シーケンシャル、並行性の問題はありません。
プロシージャでコンテキスト情報を設定した場合、そのセッションでその後実行されるトリガーには、新しく設定されたコンテキスト情報の値が表示されます。提案するように、コンテキスト情報にユーザーID値を設定し、それをトリガーで使用することは、コンテキスト情報の使用の典型的な例であり、基本的に並行性について話すことはないため、並行性に関して完全に安全です。ストアドプロシージャにコンテキスト情報を設定し、そのプロシージャで発生した削除が原因で実行されるトリガーでコンテキスト情報に依存する場合、バッチはまだ終了していないため、リンクした記事によると、 sys.dm_exec_requests
からのconetxt情報 DMVまたはCONTEXT_INFO()
から 関数。 sys.dm_exec_sessions
にはまだプッシュされません 、これは、ストアドプロシージャを終了し、サーバーに送信されたT-SQLバッチ内の他の呼び出し(「リクエスト」)を終了した後にのみ発生する可能性があります。