我在sys.sysprocesses
中open_tran
列的含义有问题。它返回一些进程的数字2,但我想知道一个进程如何可以有两个开放的事务?
是否可以举例说明一个进程可以有两个开放的事务?
嵌套事务将增加该计数器。
下面的脚本将演示这一点:select open_transaction_count
from sys.dm_exec_sessions
where session_id = @@SPID;
begin tran;
select open_transaction_count
from sys.dm_exec_sessions
where session_id = @@SPID;
begin tran;
select open_transaction_count
from sys.dm_exec_sessions
where session_id = @@SPID;
rollback tran;
请注意,您不应该使用
sys.sysprocesses
,因为它已被弃用。使用sys.dm_exec_sessions
和sys.dm_exec_connections
代替。