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.
数据库可以设置隐式事务,显示打开事务,自动提交事务。默认情况下数据库都是自动提交事务。(不做详解了)