vel*_*ije 27 trigger sql-server transaction
假设我们有以下情况:
我们有一张桌子(比方说Table_A
),它有一个触发器INSERT
。触发器作业是table_B
根据 中插入的值更新 中的某些行table_A
。
现在,当我们简单地在表中插入一行时一切正常,但是我们通过事务插入数据的情况呢?触发器会等到所有事务语句成功运行,还是会在识别到插入时触发?。如果触发器在识别出第一个插入时立即触发,如果事务在最后一行失败会发生什么?这种情况有什么机制吗?
Mar*_*ith 40
插入总是在事务中。
如果您没有明确的BEGIN TRAN ... COMMIT
orSET IMPLICIT_TRANSACTIONS ON
语句,则该语句将作为自包含的自动提交事务运行。
对于触发触发器的操作,触发器始终是事务的一部分。如果触发器中发生导致事务回滚的错误,则触发操作也将回滚。
触发器隐式XACT_ABORT
开启。启用此设置的错误将自动导致事务回滚(带有RAISERROR
语句的代码中引发的错误除外)。
归档时间: |
|
查看次数: |
31025 次 |
最近记录: |