2017-08-31 35 views
-3

"Table1"の変更を追跡する監査テーブル "Audit_Table1"があります。しかし、問題は、ストアドプロシージャが同じSPの3つの異なるステージでテーブルを更新することです。しかしトリガーも3回発射される。だから私は何をすることができますトリガは一度だけ起動され、すべての変更をキャプチャします。単一のレコードを更新した後の監査テーブル内の複数のレコード

答えて

0

ストアドプロシージャでは、テーブルトリガーを起動しない期間に、オプションでテーブルトリガを無効にすることができます。

DISABLE TRIGGER { [ schema_name . ] trigger_name [ ,...n ] | ALL } 
ON { object_name | DATABASE | ALL SERVER } [ ; ] 

あなたはここで多くを学ぶことができます。

DISABLE TRIGGER (Transact-SQL)

それは私が本当に理解していない「すべての変更を」、キャプチャされません。

特定の部分をキャプチャしたくない場合は、上記を使用してください。

+0

トリガーを無効にすることはできません。常に有効にする必要がありますが、特定のストアドプロシージャの範囲内で1回だけ起動する必要があります – Megha

+0

@Meghaトリガーの定義は何ですか? INSERT/UPDATE/DELETEなどの場合は、そのテーブルで発生する各INSERT/UPDATE/DELETEに関係なく呼び出されます。 – Patrick

+0

更新後のトリガーです。私は、トリガーの1つでcontext_infoと呼ばれるものを見つけました。しかし、この場合、またはそれを使用する方法がわかりません。 – Megha

関連する問題