2010-10-11 67 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