一直误解sql事务的用法.
一直以来窃以为这样的用法是正确的.
1,begin tran....commit tran
2.set XACT_ABORT on
对于单条记录正常,但对于批插入=操作,上面的用法却错了.
正常用法为:
1,
先 set XACT_ABORT on
再begin tran
然后commit tran
最后set XACT_ABORT off
2,
先begin tran
然后插入操作,
再判断if @@error<>0 begin rollback goto endlabel end
(对每个插入操作都要加上这句判断)
最后commit tran
endlabel:
本文澄清了关于SQL事务使用的常见误解,并提供了两种正确的事务管理方式:一是通过设置XACT_ABORT来控制事务行为;二是通过检查错误状态来决定是否回滚事务。

被折叠的 条评论
为什么被折叠?



