【问题标题】:The table sys.dm_tran_session_transactions is always empty表 sys.dm_tran_session_transactions 始终为空
【发布时间】:2020-07-25 09:38:43
【问题描述】:

您好,每当我从系统视图中选择新查询时 sys.dm_tran_session_transactions 我总是得到 0 行

select * from sys.dm_tran_session_transactions

但其他一些答案的人使用此表。

SQL Server 2005 : map Transaction_ID to @@SPID

为什么我要清空这个视图?

【问题讨论】:

    标签: sql-server sql-server-2012 database-administration system-views


    【解决方案1】:

    sys.dm_tran_session_transactions DMV 将返回带有打开事务的会话,因此在您运行查询时似乎没有此类会话。启动事务查看返回数据示例:

    BEGIN TRAN;
    SELECT * FROM sys.dm_tran_session_transactions;
    ROLLBACK;
    

    【讨论】:

    • 在自动提交模式下运行的SELECT 已经是一个事务,并且从sys.dm_tran_current_transactionsys.dm_tran_database_transactions i.stack.imgur.com/65nJd.png 返回,这有点奇怪
    • @MartinSmith,是的,交易的确切含义取决于上下文。另一个歧义与快照隔离级别事务有关。人们可能会假设数据的快照视图以BEGIN TRAN 开头,但实际上它从该显式事务中的第一个查询开始。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-09-15
    • 1970-01-01
    • 2017-07-31
    • 2019-07-18
    • 2019-08-18
    • 2011-12-29
    • 2019-07-02
    相关资源
    最近更新 更多