您的位置:首页 > 数据库

sql 事务(transaction)

2010-11-07 23:49 316 查看
--------------------------------
---------事务操作---------------
--------------------------------
use stuDB
--创建bank表
if exists (select * from sysobjects where name='bank')
drop table bank
go
create table bank
(
customerName char(10),
currentMoney money
)
go
--给bank表添加约束
alter table bank
add constraint ck_currentMoney check (currentMoney>=1)
go
--给bank添加数据
insert into bank (customerName,currentMoney) values ('张三',1)
insert into bank (customerName,currentMoney) values ('李四',1001)
go
--事务
print '查看转账前的余额'
select * from bank
go
--开始事务
begin transaction
declare @errorSum int--错误统计值
set @errorSum=0
--转账
update bank set currentMoney=currentMoney-1000 where customerName='李四'
set @errorSum=@errorSum+@@error
update bank set currentMoney=currentMoney+1000 where customerName='张三'
set @errorSum=@errorSum+@@error
print '查看转账过程中的余额'
select * from bank
if(@errorSum<>0)
begin
print '交易失败,回滚!'
rollback transaction
end
else
begin
print '交易成功,提交!'
commit transaction
end
print '查看转账后的余额'
select * from bank
go
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  sql 事务