T-SQL---事务操作

使用事务解决银行转账问题

begin transaction
/*定义变量,用于累计事务执行过程中的错误*/
declare @errorsum int 
set @errorSum=0 --初始化为0,即无错误
update bank set currentMoney=currentMoney-1000 where customerName='张三'
set @erroSum=@errorSum+@@error
update bank set currentMoney=currentMoney+1000 where customerName='李四'
set @erroSum=@errorSum+@@error
if @errorSum<>0 --如果有错误
 begin 
  print '交易失败,回滚事物'
  rollback transaction
 end
else
 begin 
  print '交易成功,提交事务,写入硬盘,永久保存'
  commit transaction
 end
go
print '查看转账事务后的余额'
select * from bank

 事务的ACID特性

1、原子性(Atomicity):事务是一个完整的操作。事务的各步骤是不可分的,要么都执行,要么都不执行。

2、一致性(Consistency):当事务完成时,数据必须处于一致状态

3、隔离性(Isolation):对数据进行修改的所有并发事务是彼此隔离的,这表明事务必须是独立的,它不应以任何方式依赖或影响其他事务

4、永久性(Durability):事务完成后,它对数据库的修改被永久保持,事务日志能够保持事务的永久性

posted @ 2015-05-22 16:06  框框A  阅读(605)  评论(0编辑  收藏  举报