事务主要是保证一组SQL语句都执行成功,若发现有一个执行失败则整体回滚。
--该表有个约束 每个人的帐号里 不能少于10块钱
select * from bank
update bank set balance=balance-1000 where cid='0001'
update bank set balance=balance + 1000 where cid='0002'
--事务
BEGIN TRANSACTION
declare @sumError int =0
update bank set balance=balance-1000 where cid='0001'
set @sumError=@sumError+@@ERROR
update bank set balance=balance + 1000 where cid='0002'
set @sumError=@sumError+@@ERROR
if(@sumError<>0)
begin
--失败了
ROLLBACK TRANSACTION
end
else
begin
--成功了
COMMIT TRANSACTION
end