-3
"Table1"の変更を追跡する監査テーブル "Audit_Table1"があります。しかし、問題は、ストアドプロシージャが同じSPの3つの異なるステージでテーブルを更新することです。しかしトリガーも3回発射される。だから私は何をすることができますトリガは一度だけ起動され、すべての変更をキャプチャします。単一のレコードを更新した後の監査テーブル内の複数のレコード
"Table1"の変更を追跡する監査テーブル "Audit_Table1"があります。しかし、問題は、ストアドプロシージャが同じSPの3つの異なるステージでテーブルを更新することです。しかしトリガーも3回発射される。だから私は何をすることができますトリガは一度だけ起動され、すべての変更をキャプチャします。単一のレコードを更新した後の監査テーブル内の複数のレコード
ストアドプロシージャでは、テーブルトリガーを起動しない期間に、オプションでテーブルトリガを無効にすることができます。
DISABLE TRIGGER { [ schema_name . ] trigger_name [ ,...n ] | ALL }
ON { object_name | DATABASE | ALL SERVER } [ ; ]
あなたはここで多くを学ぶことができます。
DISABLE TRIGGER (Transact-SQL)
それは私が本当に理解していない「すべての変更を」、キャプチャされません。
特定の部分をキャプチャしたくない場合は、上記を使用してください。
トリガーを無効にすることはできません。常に有効にする必要がありますが、特定のストアドプロシージャの範囲内で1回だけ起動する必要があります – Megha
@Meghaトリガーの定義は何ですか? INSERT/UPDATE/DELETEなどの場合は、そのテーブルで発生する各INSERT/UPDATE/DELETEに関係なく呼び出されます。 – Patrick
更新後のトリガーです。私は、トリガーの1つでcontext_infoと呼ばれるものを見つけました。しかし、この場合、またはそれを使用する方法がわかりません。 – Megha