加入收藏 | 设为首页 | 会员中心 | 我要投稿 核心网 (https://www.hxwgxz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

sql-server – 与事务组合触发

发布时间:2021-01-11 01:02:51 所属栏目:编程 来源:网络整理
导读:假设我们有以下情况: 我们有一个表(比如Table_A),它在INSERT上有一个触发器.触发器作业是根据table_A中插入的值更新table_B中的某些行. 现在,当我们在表中简单地插入一行时,一切正常,但是我们通过事务插入数据的情况呢?触发器是否会等到所有事务语句成功运

假设我们有以下情况:

我们有一个表(比如Table_A),它在INSERT上有一个触发器.触发器作业是根据table_A中插入的值更新table_B中的某些行.

现在,当我们在表中简单地插入一行时,一切正常,但是我们通过事务插入数据的情况呢?触发器是否会等到所有事务语句成功运行,否则它会在识别插入时被触发?如果触发器在识别出第一个插入时立即触发,那么如果事务在最后一行失败会发生什么?这种情况有没有机制?

解决方法

插入始终在事务中.

如果您没有明确的BEGIN TRAN … COMMIT或SET IMPLICIT_TRANSACTIONS ON,则该语句将作为自包含的auto commit transaction运行.

触发器始终是触发触发器的操作的事务的一部分.如果触发器中发生导致事务回滚的错误,则触发操作也将回滚.

触发器隐式具有XACT_ABORT.此设置启用时出错将自动导致事务回滚(使用RAISERROR语句在代码中引发的错误除外).

(编辑:核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读