私は何かが削除または更新されたときに機能を実行するいくつかのテーブルでいくつかのトリガーを持っています。トランザクション中に、トリガーが実行され、後でトランザクションがロールバックすると、トリガーもロールバックされますか?SQL Serverでトランザクションが失敗した場合、トリガーはロールバックされますか?
12
A
答えて
18
はい。
トリガーがトランザクションの一部として実行される限り、データベース内の変更はロールバックされます。
Nitpick - トリガーはトリガーですが、ロールバックされません。トリガーのエフェクトになります。
3
OK、挿入/更新/削除時にロールバックされる実際のトランザクションは、トリガーが実行したアクションもロールバックします。ただし、トランザクション内で複数のアクションを実行している場合、ロールバックが早期のアクションに発生するようにトランザクション処理がコード内で明示的に行われなければなりません。
したがって、テーブル1から削除してトリガーが起動してトランザクションが失敗すると、すべてがロールバックされます。
私がテーブル1から削除して、トリガが発生し、同じスクリプトまたはストアドprocまたはアプリケーションから送信されたdynamicSQLの一部としてtable2から削除すると、2つのことが起こります。正式な明示的なトランザクション(エラーを正しく処理する)がある場合、暗黙のトランザクション(最後のアクションのみをロールバックする)に依存している場合は、トリガーアクションを含むすべての処理がロールバックされ、失敗した部分
関連する問題
- 1. SQL Server - 失敗したトリガーのロールバック
- 2. フライウェイの移行が失敗した場合、alter文はロールバックされますか?
- 3. Springトランザクション失敗ロールバック
- 4. SQL Server - トランザクションはエラーでロールバックされますか?
- 5. 検証が失敗した場合にActiveRecordトランザクションをロールバックしない方法
- 6. トリガーが失敗した場合はどうなりますか?
- 7. Sprintトランザクション - 内部トランザクションが失敗した場合のREQUIRES_NEW動作
- 8. asp.netとSQL Server +トランザクションのロールバック
- 9. トランザクションがロールバックされましたか?
- 10. PHP PDO実行時にトランザクションのロールバックが失敗しますか?
- 11. SQL Serverのトランザクションでトリガーが実行されます
- 12. Nhibernateは、コミットが失敗したときにトランザクションをロールバックしますか?
- 13. トリガーからのトランザクションのロールバック
- 14. SQL ServerトランザクションのロールバックまたはPetapocoを使用したコミット?
- 15. SQL Serverでトランザクションをロールバックまたはコミットする方法
- 16. Sidekiqバックグラウンドジョブのロールバックが失敗した場合
- 17. 親@トランザクションが失敗したときに、ネストされた@Transaction(Propagation.REQUIRES_NEW)がロールバックされます。
- 18. スプリングバッチが失敗する| JDBCトランザクションをロールバックできませんでした
- 19. トリガーを失敗させる原因と失敗した場合の対応
- 20. SQL Serverへの接続(Linuxの場合)が失敗しました
- 21. トランザクションを失敗させることなく、SQLトリガーのハンドルエラー?
- 22. SQL Server:トランザクション後のトリガー
- 23. タスクが失敗した場合にCapistranoをロールバックさせない方法
- 24. 失敗した場合、SQL Server接続を再試行します。
- 25. @トランザクションがロールバックされない
- 26. MySQLでQtトランザクションのロールバックが失敗する
- 27. Azure分散トランザクションでは、1つのhttp呼び出しが失敗した場合にフル操作をロールバックする最良の方法は何ですか?
- 28. ロールバックするSQL Server 2012トランザクションを取得できません
- 29. 1つのオブジェクトがすべてのオブジェクトのロールバックに失敗した場合
- 30. SQL Server MDSワークフロー統合サービスのインストールに失敗しました