我正在尝试找到一种方法来列出 SQL Server 中所有打开的事务。
例如我执行以下语句:
这将打开两个已完成的事务,但现在此会话设置为“睡眠”,并带有两个打开的事务。我如何才能看到这些未结交易报表?
当我跑
select * from sys.dm_tran_session_transactions
我可以看到只有一行带有事务 ID 和打开的 tran 计数。(会话 57 是我的未结交易)
当我跑
select * from sys.dm_tran_database_transactions
我看到我的 transaction_id 的两行;一个在 user_db 中,一个在 tempdb 中(为什么我只看到两行?我在 user_db 中有两个打开的事务,所以我希望看到更多 db id 为 5 的行
当我跑
select * from sys.dm_tran_active_transactions
没什么帮助,只有一排没有细节。
查看睡眠会话中打开的事务语句的能力可能听起来微不足道,但我找不到任何方法来查看这些。