[SQL]使用SQL Server Profiler錄Trigger執行的SQL
前言
今天幫同事看問題時,因為有些事在Table的Trigger中執行,但好像沒有Run到!
於是使用SQL Server Profiler來錄看看執行Trigger的情形如何!
實作
執行步驟如下,
1.執行SQL Server Profiler,如下圖,
2.勾選「Show all events」
3.選取「Stored Procedures」Event中的「SP:StmtCompleted」及「SP:StmtStarting」,如下圖,
經過以上的設定後,就不儘可以錄Trigger還可錄到Function及Store Procedure內的SQL哦!
另外,筆者再分享使用SQL Server Profiler的方式!
1.勾選「Show all columns」
2.勾選「RowCounts」欄位(受到事件影響的資料列數目),可以看這個SQL影響多少資料,如下圖,
3.如果只要錄某個DB的話,就可以針對DatabaseName做篩選,按下「Column Filter...」Button,設定「DatabaseName」來篩選,如下圖,
4.有時我們可能想知道那些SQL花比較多時間,其他不花時間的SQL就不要顯示出來,這時我們可以透過設定「Duration」來篩選花超過某個時間的SQL才顯示,這時我就會設定Duration>1,如下圖,
5.如果ConnectionString中有設定Application Name的話,如(Data Source=localhost;Initial Catalog=YOURDB;User Id=rm;Password=rmok;Connect Timeout=15;Application Name=RMAP),就可以依ApplicationName來篩選,如下圖,
6.如果只想針對MSSM執行的SQL去錄的話,也能使用「SPID」來篩選,如下圖,
結論
以上如果要錄Trigger時,就不要篩選Application Name哦! 因為Trigger不是透過我們的AP去執行的哦!
針對您要Trace的欄位及事件,請依需求再勾選調整它哦!
Hi,
亂馬客Blog已移到了 「亂馬客 : Re:從零開始的軟體開發生活」
請大家繼續支持 ^_^