2012-04-26 2 views
0

私はテーブルに挿入され、削除されたデータを監視するためのメカニズムを作成しています。私の質問は、トリガーの信頼性はどれくらいですか?どのインスタンスがトリガーに失敗するのですか?MS SQLトリガーはどのようなインスタンスで実行に失敗しますか?

構造は単純ですが、テーブル、2つのトリガー、1つは挿入用、もう1つは削除用です。どちらのトリガーでも、データ(「<id>」が削除され、「<id>が挿入されました」)が別のテーブルに挿入されます。

+1

トリガーが失敗していると思うかもしれない1つのインスタンスは、複数行のステートメントが実行されたときに他の行を黙って無視する、挿入された行を1つしか期待しないトリガーを作成したときです。 –

+0

@Damien_The_Unbeliever Sir、あなたは私にリンクを張って、あなたが言ったことを説明する記事を教えてくれますか?私はそれが勉強する価値があると思います。ありがとうございました! – dpp

+0

[この記事](http://www.sqlservercentral.com/blogs/steve_jones/2010/09/23/common-sql-server-mistakes-_1320_-multi-row-dml-triggers/)のクイックビュー大丈夫 - 私は*一般的なSQL Serverのミストリガを検索*。また、ここでSQLサーバのトリガに関する質問を検索してみることもできます。通常、これらの質問に答えるためにどこかに現れます。 –

答えて

2

トリガーは常に実行されますが、トリガーの実行中に未処理の例外が発生すると、トランザクション全体がロールバックされます。

+0

テーブルにデータを挿入しようとすると失敗すると、トリガーが実行されますか?それとも成功したときだけ? – dpp

+0

これは、実行後に起動する「AFTER」やSQL文をトリガする代わりに実行される「INSTEAD OF」など、使用されるトリガオプションに依存します。 – BluesRockAddict

+0

あなたは大きな助けになっています。ありがとうございました! – dpp

関連する問題