数据库事务(Database Transaction)是指作为单个逻辑工作单元执行的一系列操作,要么完整地执行,要么完全地不执行。 正常的情况下,这些操作将顺利进行,最终交易成功,与交易相关的所有数据库信息也成功地更新。
为什么需要数据库事务?
好比生活转账,转账是生活中常见的操作,从A账户转账100元到B账号。站在用户角度而言,这是一个逻辑上的单一操作,然而在数据库系统中,至少会分成两个步骤来完成:
1.将A账户的金额减少100元
2.将B账户的金额增加100元。
当这两个操作同时完成,就是我们事务的实现
实例:(实现小杨给小崔转账100)
–开始事务
begin Transaction tran_Charge
–定义变量记录错误数量
declare @err_nums int
set @err_nums=0
begin try
update Customers set Remain=Remain-100 where id=3 set @err_nums=@err_nums+@@error
update Customers set Remain=Remain+100 where id=4 set @err_nums=@err_nums+@@error
end try
begin catch
print ‘错误编号:’+convert(varchar,error_number())+‘错误’+error_message() set @err_nums=@err_nums+1
end catch
if(@err_nums>0)
rollback Transaction tran_Charge --回滚事务
else
commit Transaction tran_Charge --提交事务
此时可以得到