sql语句中的回滚事务

sql语句中的回滚事务,第1张

sql语句中的回滚事务语法如下:

1、setXACT_ABORToff时,回滚产生错误的Transact-SQL语句,而事务将继续进行处理,(注:错误严重或者语法错误时可能回滚整个事务)

2、setXACT_ABORTON时,如果Transact-SQL语句产生运行时错误,整个事务将终止并回滚。

--创建存储过程

alter proc proc_aa_aa1

(@id int,@name varchar(255) ,@sex char(2))

as

  --创建事务

  begin  Transaction tran_charge

  --定义变量记录错误数

  declare @reeSum int

  set @reeSum=0

  --尝试执行sql语句

  begin try

  insert into aa(id,name,sex) VALUES ('1','as','男')

  set @reeSum=@reeSum+@@ERROR

--@@error当前一个语句遇到错误,则返回错误号,否则返回0。需要注意的是@ERROR在每一条语句执行后会被立刻重置

  insert into aa1(id,name,sex) VALUES ('1','as','男女')

print @@ERROR

  set @reeSum=@reeSum+@@ERROR

  end try

  begin catch

  --打印错误信息

  print '错误编号:'+convert(varchar,error_number())+'错误消息'+error_message()

print  @reeSum

  set @reeSum=@reeSum+@@ERROR

  end catch

  print '111'

  print @reeSum

  if(@reeSum>0)--有错误

    rollback Transaction tran_charge --回滚事务

    else

    commit Transaction tran_charge--提交事务

  --通过调用存储过程,给相应的参数,

  exec proc_aa_aa1'2','1','3'

@@ROWCOUNT    //返回

@@ERROR    //返回错误码

insert into aa(id,name,sex) VALUES ('1','as','男')

insert into aa1(id,name,sex) VALUES ('1','as','男女')

delete from aa

delete from aa1

select * from aa

select * from aa1

您好,您的问题是:service层定义的事务可以回滚数据库吗?答案是肯定的,service层定义的事务可以回滚数据库。事务回滚是指在一个事务中,在执行完某个 *** 作之后,可以将数据库恢复到事务开始之前的状态。在service层定义的事务中,可以使用事务回滚来保证数据库的完整性和一致性。事务回滚可以有效地防止数据库中的数据发生意外的更改,从而保证数据的安全性。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9258760.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-26
下一篇 2023-04-26

发表评论

登录后才能评论

评论列表(0条)

保存