CONTEXT_INFOを使用して、監査/履歴テーブルの目的で削除トリガーにユーザー名を渡します。CONTEXT_INFOの範囲と、潜在的な競合状態を作成しているかどうかを理解しようとしています。
私の各データベーステーブルには、削除を処理するためのストアドプロシージャがあります。ストアドプロシージャの削除は、userIdをパラメーターとして受け取り、CONTEXT_INFOをuserIdに設定します。次に、削除トリガーがCONTEXT_INFOを取得し、それを使用して、行を削除したユーザーを示す監査テーブルを更新します。
問題は、異なるユーザーからの2つの削除sprocが同時に実行されている場合、一方のsprocに設定されたCONTEXT_INFOは、もう一方のsprocによって起動されたトリガーによって消費される可能性があるかどうかです。
この記事http://msdn.microsoft.com/en-us/library/ms189252.aspxを見たことがありますが、この記事が役立つための鍵となるSQLServerのセッションとバッチの範囲がわかりません。
コードを投稿したいのですが、現時点では時間が足りません。これが十分に明確でない場合は、後で編集します。
助けてくれてありがとう。