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

问题描述 投票:0回答:1

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

提交的操作是:截断表

sql-server tsql transactions truncate
1个回答
0
投票

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

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;
© www.soinside.com 2019 - 2024. All rights reserved.