簡単な質問が 2 つあります。
- SqlServerトリガーはデフォルトでアトミックですか?
- そうでない場合、それを達成する方法は?
環境はシンプルです。データベースへの 2 つの異なる接続を持つ 2 人のユーザー (UserA と UserB と呼びましょう) がいます。両方の接続が同時にアクティブになります。
UserA が特定のテーブルに行を挿入すると、トリガーが起動されます (TriggerAtomic と呼びましょう)。TriggerAtomic が起動されたときに、TriggerAtomic が終了するまで UserB が何も実行できないようにする必要があります。明らかに、TriggerAtomic が終了するまで、他のトリガー、関数、手順は実行できません。