Sql Server事务的应用
/*测试数据
create table tmp(a int)
Insert into tmp(a) values(1)
*/
--包含事务
create proc sp_TranTest_1
as
begin tran
Update tmp set a=a+1
Update tmp set a=a/0
if(@@error<>0)
begin rollback tran
return 0
end
else
begin commit tran
return 1
end
--不包含事务
create proc sp_TranTest_2
as
Update tmp set a=a+1
Update tmp set a=a/0
create table tmp(a int)
Insert into tmp(a) values(1)
*/
--包含事务
create proc sp_TranTest_1
as
begin tran
Update tmp set a=a+1
Update tmp set a=a/0
if(@@error<>0)
begin rollback tran
return 0
end
else
begin commit tran
return 1
end
--不包含事务
create proc sp_TranTest_2
as
Update tmp set a=a+1
Update tmp set a=a/0
执行sp1,报错,但对数据无影响;执行sp2,报错,且影响数据。