假设我有一个打开的 SQL Server 会话,并执行以下操作:
begin tran
insert into People (Id) values (1)
select @@TRANCOUNT -- Prints 1
save transaction tt
begin tran
select @@TRANCOUNT -- Prints 2
insert into People (Id) values (2)
Run Code Online (Sandbox Code Playgroud)
好的,现在我做了一个:
rollback tran tt
select @@TRANCOUNT -- Prints 2!
Run Code Online (Sandbox Code Playgroud)
我的问题可能很明显:
为什么部分回滚不会减少内部事务增加的@@TRANCOUNT?
要提交更改,我应该执行两个提交命令。恕我直言,似乎并不自然。