2011-12-16 9 views
0

私は、SQL Server 2008のSQL Serverのトリガーレイテンシ?

CREATE TRIGGER trigger_mytable 
ON dbo.mytable 

FOR INSERT, DELETE, UPDATE 

AS 

EXTERNAL NAME mycode.[trig.mytable].myfn 

mytable.myfnのコードはC#であるにテーブルのトリガを作成しました。データベースへの接続を開き、イベントに基づいて挿入または削除されたテーブルを照会してトリガーデータを取得します。エントリが挿入され、すぐにテーブルから削除されたり(トリガ関数が呼び出されない)可能性はありますか?要するに、トリガーの待ち時間や不在がありますか?私の理解は、トリガーはポーリングではなく割り込みの種類のメカニズムを使用することです。私はSQL Serverとトリガには非常に新しいです。

答えて

2

いいえ:待ち時間はありませんかトリガーがINSERTの一部であり、DELETE文

遅れます。
トリガが完了すると、その後、SQL Serverは、INSERTを報告するか、完全な

ノートを削除:あなたは、通常ので、トリガがための依存関係の一種である短く簡潔なトリガーとしない外部のコードを使用したり、

+0

を呼び出し続けるだろうINSERTまたはDELETEは実行されますか?したがって、トリガーコードの呼び出しをバイパスして表に挿入/削除することはできません。 – Lalitha

+0

@Lalitha:はい、あなたはそれを依存として考えることができます。いいえ、トリガーを無効にするものがいくつかない限り、通常はバイパスできませんが、これにはエンドユーザーに与えてはならない許可が必要です。 – gbn

+0

説明をありがとうございます。 – Lalitha