レガシー システムへの変更を追跡するために、テーブルにトリガーを追加する必要があるという不幸な状況にあります。TABLE_A に挿入、更新、および削除トリガーがあり、それぞれが 2 つの列の値を TABLE_B に書き込み、削除トリガーによって入力された場合はビット フラグが 1 に設定されます。
TABLE_B のすべてのエントリが 2 回表示されます。挿入は 2 つの行を作成し、更新は 2 つの行を作成し (私たちは信じています)、削除は挿入を作成してから削除を作成します。
レガシー アプリケーションがこれを行っているのか、それとも SQL がそれを行っているのか?
編集(詳細を追加):
トリガーの本体:
.. 削除後
INSERT INTO TableB(col1, isdelete) SELECT col1, 1 from DELETED
..挿入後
INSERT INTO TableB(col1, isdelete) SELECT col1, 0 from INSERTED
..更新後
INSERT INTO TableB(col1, isdelete) SELECT col1, 0 from DELETED
プロファイラーを試しましたが、実行されているステートメントが重複していません。