如何找到在 SQL 服务器中提交的事务的机器 IP,我们有用户名和事务 ID

How to find Machine IP of a transaction committed in SQL SERVER, we have user Name and Transaction ID

如何找到在SQL服务器中提交交易的用户的机器IP/主机名,我们有 UserName ,TransactionID 和 TransactionTime 。 是否可以使用 T-SQL 查询找到它?

提交的操作是:截断Table

这个可能会帮到你。我不是自己写的,但我们有时会在我的组织中使用它。

SELECT Sdest.Databasename,
       Sdes.Session_Id,
       Sdes.Host_Name,
       Sdes.Program_Name,
       Sdes.Client_Interface_Name,
       Sdes.Login_Name,
       Sdes.Login_Time,
       Sdes.Nt_Domain,
       Sdes.Nt_User_Name,
       Sdec.Client_Net_Address,
       Sdec.Local_Net_Address,
       Sdest.Objname,
       Sdest.Query
FROM Sys.Dm_Exec_Sessions AS Sdes
  INNER JOIN Sys.Dm_Exec_Connections AS Sdec ON Sdec.Session_Id = Sdes.Session_Id
  CROSS APPLY
  (
      SELECT DB_NAME(Dbid) AS Databasename,
             OBJECT_ID(Objectid) AS Objname,
             ISNULL(
             (
                 SELECT Text AS [Processing-instruction(definition)]
                 FROM Sys.Dm_Exec_Sql_Text(Sdec.Most_Recent_Sql_Handle) FOR Xml PATH(''), TYPE
                                                                                              ), '') AS Query
      FROM Sys.Dm_Exec_Sql_Text(Sdec.Most_Recent_Sql_Handle)
                                                            ) AS Sdest
WHERE Sdes.Session_Id <> @@Spid 
ORDER BY Sdec.Session_Id;