トリガーが割り当てられたテーブルがあります。そして、このトリガーは同じテーブルデータを変更します。確かに、これは新しいトリガを開始します。管理されたSQLトリガー再帰
すべてのトリガインスタンスは、チェーン内の最後のトリガインスタンスであるかどうかを知っています(いくつかのルールがあります)。それが必要な場合は、次のトリガーをオフにする必要があります。
私は状態(例えば、停止フラグ)があると、予期しない動作が起こる可能性があります。たとえば、ユーザーがテーブルを変更します。新しいトリガチェーンが開始されています。トリガはターミネータになり、停止フラグを立てたい。この瞬間、別のユーザがテーブルを変更して、新しいトリガチェーンが開始され、それが実行されなければならない。しかし、停止フラグが設定されると、フラグをクリアして終了します。さて、再帰的なトリガー(これは私たちは考える)が開始され、フラグがクリアされているかどうかを調べます...実行されます!
私はわかりませんが、このような場合の順序は何ですか?データを変更した直後に再帰トリガが実行されるか、親プロセスが最初に完了するかどうかはわかりません。
よろしく、
これは、SQL Serverを使用する際に非常に悪い方法です。あなたの実際のニーズと要件からこの質問を再作成/再開することを強くお勧めします。 – RBarryYoung
@RBarryYoung:完全に同意します。これはトリガをうまく使用することではありません。 –
あなたはあまりにも親切なミッチです。私はそうではありません... – RBarryYoung