Mik*_*ynn 14 sql-server triggers transactions
我在某些表上有一些触发器,在删除或更新某些内容时执行某个功能.在事务期间,如果触发器执行并且稍后在事务中它被回滚,那么触发器是否也会被回滚?
好的,在插入/更新/删除时回滚的实际事务也将回滚触发器执行的任何操作。但是,如果您要在一个事务中执行多个动作,则必须在代码中显式地进行事务处理,以使回滚发生在早期动作上。
因此,如果我从table1中删除并触发触发器,然后事务失败,则一切都会回滚。
如果我从表1中删除并触发触发器,并且从同一应用程序发送的同一脚本或存储的proc或dynamicSQL中,从表2中删除,则可能会发生两种情况。如果您有一个正式的显式事务(可以正确处理错误),则发生的所有事件(包括触发操作)都将回滚;如果您依赖于隐式事务(仅回滚最后一个操作),则它在更改之前不会发生任何变化。失败的部分。
归档时间: |
|
查看次数: |
9204 次 |
最近记录: |