SQL简单事务

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

在执行银行转账操作的时候,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.

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

posted @ 2013-01-14 14:03  life is a gift  阅读(162)  评论(0编辑  收藏  举报