1.事务是什么?
事务就是被绑定在一起作为一个逻辑工作单元的SQL语句组,如果任何一个语句操作失败那么整个操作就被失败,进而回滚到操作前状态,或者是上个节点。为了确保要么执行,要么不执行,就可以使用事务。要将一组语句作为事务考虑,就需要通过ACID测试,即原子性,一致性,隔离性和持久性。
2.事务的作用
1.0、为数据库操作提供了一个从失败中恢复到正常状态的方法,同时提供了数据库即使在异常状态下仍能保持一致性的方法。
2.0、当多个应用程序在并发访问数据库时,可以在这些应用程序之间提供一个隔离方法,以防止彼此的操作互相干扰。
3.0 可以保证数据的一致性和完整性(避免异常和错误等导致的数据信息异常)
2.事务的使用语法
实现刘刘某向夏某转账200
--定义一个变量,记录错误数;
create proc pro_changeAcount
(
@idIn int ,
@idOut int ,
@Remain decimal(18,2)
)
as
declare @error_nums int
set @error_nums=0
--开始事务
begin transaction tran_change
begin try
update Customers set Remain=(Remain-200) where id=1
set @error_nums=@error_nums+@@ERROR
update Customers set Remain=(Remain+200) where id=2
end try
begin catch
set @error_nums=@error_nums+1
print '错误信息'+error_number()+',错误信息'+error_message()
end catch
if( @error_nums>0)
--回滚事务
rollback tran tran_change
else
--提交事务
commit tran tran_change
–执行事务后查询Customers 表
select*from Customers
得到结果如下