日期:2014-05-17 浏览次数:20491 次
create procedure test_pro
as
begin
--insert into TestValue 这个相当于记录@@TRANCOUNT的值,我用print在查询分析器里看不到。
insert into TestValue values(@@TRANCOUNT,'1') --这里还没开始@@TRANCOUNT应该是0,实际结果是2
begin transaction
insert into TestValue values(@@TRANCOUNT,'2') --这里事务刚开始@@TRANCOUNT应该是1,实际结果是2
insert into Student values('998888','小马哥','国际贸易','99086')
insert into TestValue values(@@TRANCOUNT,'3') --这里@@TRANCOUNT应该还是1,实际结果是2
rollback transaction
insert into TestValue values(@@TRANCOUNT,'4') --这里回滚了,@@TRANCOUNT应该由1变为0了,实际结果还是2
end
create procedure test_pro
as
begin
insert into TestValue values(@@TRANCOUNT,'1') --这里还没开始@@TRANCOUNT应该是0,实际结果是2
begin transaction
insert into TestValue values(@@TRANCOUNT,'2') --这里事务刚开始@@TRANCOUNT应该是1,实际结果是2
insert into Student values('998888','小马哥','国际贸易','99086')
commit transaction
insert into TestValue values(@@TRANCOUNT,'3') --这里提交事务了,@@TRANCOUNT应该由1变为0了,实际结果还是2
end
ALTER?procedure??test_pro
as
begin
--insert?into?TestValue?这个相当于记录@@TRANCOUNT的值,我用print在查询分析器里看不到。
PRINT @@TRANCOUNT?--这里还没开始@@TRANCOUNT应该是0,实际结果是2
begin?transaction
PRINT @@TRANCOUNT
?
PRINT @@TRANCOUNT?--这里@@TRANCOUNT应该还是1,实际结果是2
rollback?transaction
PRINT @@TRANCOUNT?--这里回滚了,@@TRANCOUNT应该由1变为0了,实际结果还是2
END
EXEC test_pro
/*
0
1
1
0
*/