事务

1.什么是事务?

答:事务就是将多条sql语句作为一个整体的执行单元,同生共死,一旦其中任意一条语句出错,剩下的其他语句由于执行了,而造成对数据库的影响全部都要取消,即数据库恢复到原来的状态。

2.为什么要学习事务?

答:举例子,比如生活中银行转账:你转账给你老婆,从一个账户转出,另一个账户存入。假如转出操作错误了,但是存入成功,那你不是爽死了。自己的钱没有少,老婆的钱又多了。这时候就需要事务了。一旦转出出现错误,存入操作也取消。

3.怎么使用事务?

答:熟悉两种使用地方:a.在数据库中 b.在Ado.net中

a.在数据库中实现银行转账,check约束:余额不能小于10

BEGIN TRANSACTION--开启事务
DECLARE @error INT=0-定义一个局部变量,用来累加消息号
UPDATE dbo.bank SET  balance-=1000 WHERE cid ='0001'
SET @error+=@@ERROR
UPDATE dbo.bank SET balance+=1000 WHERE cid='0002'
SET @error+=@@ERROR
IF(@error>0)
BEGIN
ROLLBACK TRANSACTION  -- 取消整个事务中对数据库产生的影响
PRINT '回滚完成'
END
ELSE
BEGIN
COMMIT TRANSACTION --保存整个事务中对数据库产生的影响
PRINT '提交完成'
END

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值