2012-02-17 27 views

答えて

18

はい。

トリガーがトランザクションの一部として実行される限り、データベース内の変更はロールバックされます。

Nitpick - トリガーはトリガーですが、ロールバックされません。トリガーのエフェクトになります。

3

OK、挿入/更新/削除時にロールバックされる実際のトランザクションは、トリガーが実行したアクションもロールバックします。ただし、トランザクション内で複数のアクションを実行している場合、ロールバックが早期のアクションに発生するようにトランザクション処理がコード内で明示的に行われなければなりません。

したがって、テーブル1から削除してトリガーが起動してトランザクションが失敗すると、すべてがロールバックされます。

私がテーブル1から削除して、トリガが発生し、同じスクリプトまたはストアドprocまたはアプリケーションから送信されたdynamicSQLの一部としてtable2から削除すると、2つのことが起こります。正式な明示的なトランザクション(エラーを正しく処理する)がある場合、暗黙のトランザクション(最後のアクションのみをロールバックする)に依存している場合は、トリガーアクションを含むすべての処理がロールバックされ、失敗した部分

関連する問題