sqlserver中的“SET XACT_ABORT ON”
我从网上查了下,这句话的作用是:
“当 SET XACT_ABORT 为 ON 时,如果 Transact-SQL 语句产生运行时错误,整个事务将终止并回滚。为 OFF 时,只回滚产生错误的 Transact-SQL 语句,而事务将继续进行处理。编译错误(如语法错误)不受 SET XACT_ABORT 的影响。”
在sql中用事务的时候一般是这么写
begin tran
sql语句
if @@error>0
rollback tran
else
commit tran
我想问一下,“SET XACT_ABORT ON”这句话是不是和我们判断事务出错“if @@error>0 rollback tran”是一个作用的啊?我在看这个解释的时候,他举得个例子,例子里面的事务是没有判断sql出错回滚的,是不是如果直接写
begin tran
sql语句
commit tran
的时候加这个“SET XACT_ABORT ON”,如果写了判断的话就不用写这句话了啊?还有就是在一个事务里面如果判断事务回滚,整个事务里面的sql语句是不是都一块回滚了?
请高手帮忙解答下,谢谢啦!