共用方式為


sys.dm_tran_session_transactions (Transact-SQL)

適用於:SQL ServerAzure SQL 資料庫Azure SQL 受控執行個體Azure Synapse Analytics分析平台系統(PDW)Microsoft Fabric 中的 SQL 分析端點Microsoft Fabric 中的倉儲Microsoft Fabric 中的 SQL 資料庫

sys.dm_tran_session_transactions動態管理檢視會回傳相關交易與會話的相關資訊。

資料行名稱 資料類型 描述
session_id int 執行交易的會話標識碼。
transaction_id bigint 交易的標識碼。
transaction_descriptor binary(8) 與客戶端驅動程式通訊時,SQL Server 所使用的交易識別碼。
enlist_count int 會話中處理交易的作用中要求數目。
is_user_transaction bit 1 = 交易是由使用者要求起始。

0 = 系統交易。
is_local bit 1 = 本機交易。

0 = 分散式交易或編列的系結會話交易。
is_enlisted bit 1 = 登記分散式交易。

0 = 不是已登記的分散式交易。
is_bound bit 1 = 交易透過系結會話在會話上作用中。

0 = 交易不是透過系結會話在會話上作用中。
open_transaction_count int 每個會話的開啟交易數目。
pdw_node_id int 適用於:Azure Synapse Analytics、Analytics Platform System (PDW)

此散發節點的標識碼。

權限

在 SQL Server 和 SQL 受控執行個體上,需要 VIEW SERVER STATE 權限。

在 Microsoft Fabric 中,查詢 需要成員身份為貢獻工作區角色或更高特權角色。sys.dm_tran_session_transactions

在 SQL Database [Basic][S0][S1] 服務目標,以及彈性集區中的資料庫,需要伺服器管理員帳戶、伺服器管理員帳戶、Microsoft Entra 管理員帳戶或 ##MS_ServerStateReader##伺服器角色的成員資格。 在所有其他 SQL Database 服務目標上,需要資料庫的 VIEW DATABASE STATE 權限或 ##MS_ServerStateReader## 伺服器角色的成員資格。

SQL Server 2022 及更新版本的權限

需要伺服器上的 VIEW SERVER PERFORMANCE STATE 權限。

備註

透過綁定會話和分散式交易,交易有可能同時在多個會話下執行。 在這種情況下,針對相同的 sys.dm_tran_session_transactions顯示多個數據列,transaction_id針對執行交易的每個會話顯示一個數據列。 因為記錄方式不同,open_transaction_count可能不符sys.dm_exec_sessions......open_transaction_count

透過在自動提交模式下使用多個主動結果集(MARS)執行多個請求,可以在單一會話中同時擁有多個活躍交易。 在這種情況下,針對相同的 sys.dm_tran_session_transactions顯示多個數據列,session_id針對在該會話下執行的每個交易顯示一個數據列。

若要呼叫 Azure Synapse Analytics 或 Analytics Platform System(PDW),請使用名稱 sys.dm_pdw_nodes_tran_session_transactions。 Azure Synapse Analytics 的無伺服器 SQL 集區不支援此語法。