SQL 事务处理

本文通过创建一个简单的Account表并进行增删改查操作,演示了如何使用SQL事务来确保数据的一致性和安全性。文中详细介绍了如何通过声明变量、设置错误处理及利用事务的提交与回滚来实现对数据库中账户余额的安全更新。
摘要由CSDN通过智能技术生成

use Demo
go

create table Account
(
AccountNumber varchar(20) not null primary key,
AccountName varchar(20) not null,
Balance decimal(18,2) not null check(Balance>=0)
)
go
--创建数据
insert into Account values(123456,'张晓慧',399.00)
insert into Account values(654321,'王晓丽',432.00)
go
select * from Account
go

--修改数据
alter table Account with check
add check(Balance>0 and Balance<1000)

go
--利用事务来处理所出现的问题
select * from Account
--声明变量
declare @Err int
--变量赋值

set @Err=0
begin transaction
--增加金额
update Account set Balance=Balance+200 where AccountNumber='123456'
set @Err=@@ERROR+@Err
--减少金额
update Account set Balance=Balance -200 where AccountNumber='654321'
set @Err=@@ERROR+@Err
if @Err=0
begin
 commit transaction  --提交事务
 print '事务提交成功'
end
else
begin
rollback transaction --事务回滚
print '事务回滚'
end
--查询数据库表内容
select * from Account

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IT摆渡者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值