2010-10-11 79 views
3

我想列出在'AFTER UPDATE TRIGGER'触发之前执行的查询,最多为n n级。该列表将在TRIGGER本身内完成。 n可以是4或更小。如何在触发器触发时获得sql查询,达到n级?

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

如果有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级?”)

+0

您错过了您的问题MySQL,我将其重新标记为SQL-server。你似乎已经解决了这个问题,是吗? – Johan 2011-05-22 15:55:51

+0

好吧,我会这样做。这个我已经解决了,但现在我真的没有了语境。工作压力真的让你快速前进。 – Rick2047 2011-05-24 05:53:40

回答

1

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