【问题标题】:How to get the sql queries when trigger was triggered, upto n levels?触发触发器时如何获取sql查询,最多n个级别?
【发布时间】:2010-10-11 06:34:29
【问题描述】:

我想列出在 'AFTER UPDATE TRIGGER' 触发到 n 级之前执行的查询。列表将在 TRIGGER 本身内完成。 n 可以是 4 或更少。

任何指针或列表是否可以通过任何其他方式完成都会有所帮助?

如果有bug,我必须调试前端和后端。

--编辑--

实际上,每次都会将一个单元格更新为空。我必须追踪它。这种情况很少发生。

--编辑--

或者说如何获取用户执行的最后 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 级”的问题之前出现的流程是什么?)

【问题讨论】:

  • 你误会了你的问题 MySQL,我将它重新标记为 SQL-server。不过,您似乎已经解决了问题,是吗?
  • 好的,我会这样做的。这个我已经解决了,但我现在真的断章取义了。工作压力真的让你快速前进。

标签: sql-server list triggers


【解决方案1】:

如果您使用的是 SQL Server 2008,则可以使用扩展事件来获取整个 TSQL 调用堆栈。示例代码见my answer here

【讨论】:

    猜你喜欢
    • 2013-10-06
    • 1970-01-01
    • 1970-01-01
    • 2014-06-07
    • 1970-01-01
    • 2019-03-26
    • 2017-07-20
    • 2022-07-20
    • 1970-01-01
    相关资源
    最近更新 更多