sql-server – 如何在触发触发器时获取sql查询,最多n级?

我想列出在’AFTER UPDATE TRIGGER’触发n级之前执行的查询.列表将在TRIGGER内部完成.

n可以是4或更小.

任何指针或如果列表可以通过任何其他方式完成将有所帮助?

如果有错误,我必须调试前端和后端.

– 编辑 –

实际上每次更新单元格都是空的.我必须追踪它.它很少发生.

– 编辑 –

或者说如何获取用户执行的最后n个查询.

– 编辑 –
我做了如下:

SELECT top(15) dest.text AS [Query]
        FROM sys.dm_exec_query_stats AS deqs
        CROSS APPLY sys.dm_exec_sql_text(deqs.sql_handle) AS dest
          --inner join  sys.sysprocesses
          -- on sys.sysprocesses.sql_handle=deqs.sql_handle
        ORDER BY deqs.last_execution_time DESC

之后的代码 – 似乎正在工作,因为完整代码为所有用户提供代码执行查询.我对它们进行了研究,因为服务器很重要.

连接问题在这里
SQL cell wise trigger
(问题发布之前的流程是’..触发,最多n级?’)

最佳答案 如果您使用的是SQL Server 2008,则可以使用扩展事件来获取整个TSQL调用堆栈.有关示例代码,请参见
my answer here.

点赞