sql >> データベース >  >> RDS >> Sqlserver

SQL ServerのCONTEXT_INFOのスコープは何ですか?

    コンテキスト情報にはスコープがなく(言語変数スコープの意味で)、セッションの存続期間にバインドされます。一度設定されると、コンテキスト情報は、接続が閉じられるまで(セッションが終了するまで)、または新しい値が設定されるまで、設定された値のままになります。セッションでの実行は常にであるため シーケンシャル、並行性の問題はありません。

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



    1. 未終了のドル相場

    2. データベース値からチェックボックスをチェックする

    3. タイムスタンプ(6)のリストをタイムゾーンで平均化する

    4. クエリ内の複合外部/主キーの列のテーブルを結合します