SQL简单事务

混江龙づ霸主 提交于 2019-11-26 14:56:18

事务的用途这里就不赘述了。在一些大型项目安全性强项目用途还是比较广泛的。

在执行银行转账操作的时候,A用户向B用户转账1000元。

--begin transaction 
--打开一个事务,简写可以用begin tran
--@@error范围错误码,如果没错误就返回0
begin tran
    declare @sum int
    update employees set balance=balance-1000 where id=1
    set @sum =@sum+@@error
    update employees set balance=balance+1000 where id=2
    set @sum =@sum+@@error
    
    if @sum<>0 
    begin 
        rollback
        print '回滚了';
    end
    else
        commit

每条修改sql语句后面加上@@error(系统变量)来统计是否有错误出现。如果没有错误sum执行完是0,反则不是0.这样就能判断在sql语句的修改过程中是否有错误。

没有问题就提交事务,有问题就回滚事务。

事务的提交或回滚操作,也可以放到try catch里,如果有异常就roll back ,没有异常就commit

可以定义事务的名称,在定义多个事务中,可以指定回滚或提交哪个事务 roll back tran1.

数据库可以设置隐式事务,显示打开事务,自动提交事务。默认情况下数据库都是自动提交事务。(不做详解了)

转载于:https://www.cnblogs.com/yuem/archive/2013/01/14/2859608.html

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!