--------------------------------
---------事务操作---------------
--------------------------------
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 事务(transaction)
最新推荐文章于 2025-05-20 09:27:07 发布