什么是事务:
将一组操作绑定成一个操作来执行;
要么全部执行成功后提交结果——Commit transaction;
要么有一个操作出现失败,就全部失败,回滚操作——Rollback transaction;
语法:
begin transaction/tran
begin try
--T-SQL语句
commit tran --上述没有问题就提交事务
end try
begin catch --有问题就回滚操作
rollback tran
end catch
示例:
刘备取款6000,添加check约束,设置账户余额必须>=0
使用事务实现,修改余额和添加取款记录两步操作使用事务
执行事务后,0行受影响
--刘备取款6000,添加check约束,设置账户余额必须>=0
--使用事务实现,修改余额和添加取款记录两步操作使用事务
alter table bankCard add constraint ck_money check(CardMoney >= 0)
begin tran
begin try
update BankCard set CardMoney-=6000 where CardNo = '6225125478544587'
update BankCard set CardMoney +=6000 where CardNo = '6225125478545565'
select * from BankCard
commit tran
end try
begin catch
rollback tran
end catch