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