0
是否可以查看無法正確解析的SQL語句(例如形成的動態創建的查詢不會轉義保留字符)或執行時遇到問題(例如轉換錯誤)SQL 2008 Profiler中。如果是的話,我應該尋找什麼事件?在MS SQL 2008中查看失敗的SQL語句
是否可以查看無法正確解析的SQL語句(例如形成的動態創建的查詢不會轉義保留字符)或執行時遇到問題(例如轉換錯誤)SQL 2008 Profiler中。如果是的話,我應該尋找什麼事件?在MS SQL 2008中查看失敗的SQL語句
經過進一步研究,由於效率的原因,使用sp_trace命令而不是profiler似乎更好。我使用這個腳本創建了一個跟蹤,用於查找形成嚴重的SQL。
declare @trace_id INT
exec sp_trace_create @traceid = @trace_id OUTPUT,
@options = 2,
@tracefile = N'c:\trace_xxx' -- change filename to one that makes better sense
select @trace_id AS trace_id
exec sp_trace_setevent @traceid = @trace_id
, @eventid = 10
, @columnid = 1
, @on = 1
exec sp_trace_setevent @traceid = @trace_id
, @eventid = 12
, @columnid = 1
, @on = 1
exec sp_trace_setevent @traceid = @trace_id
, @eventid = 33
, @columnid = 1
, @on = 1
exec sp_trace_setevent @traceid = @trace_id
, @eventid = 10
, @columnid = 14
, @on = 1
exec sp_trace_setevent @traceid = @trace_id
, @eventid = 12
, @columnid = 14
, @on = 1
exec sp_trace_setevent @traceid = @trace_id
, @eventid = 33
, @columnid = 14
, @on = 1
exec sp_trace_setevent @traceid = @trace_id
, @eventid = 10
, @columnid = 15
, @on = 1
exec sp_trace_setevent @traceid = @trace_id
, @eventid = 12
, @columnid = 15
, @on = 1
exec sp_trace_setevent @traceid = @trace_id
, @eventid = 33
, @columnid = 15
, @on = 1
exec sp_trace_setfilter @traceid = @trace_id
, @columnid = 31
, @logical_operator = 0
, @comparison_operator = 2
, @value = 0
exec sp_trace_setfilter @traceid = @trace_id
, @columnid = 1
, @logical_operator = 0
, @comparison_operator = 7
, @value = N'exec sp_reset_connection'
exec sp_trace_setstatus @traceid = @trace_id , @status = 1
查看http://stackoverflow.com/questions/5199812/logging-erroneous-queries-only-on-sql-server/5199933#5199933。這是一個重量級的跟蹤,雖然事件仍然需要處理,即使大部分都會被濾除。 –
這看起來正是我想要的。但是,即使使用過濾器錯誤<> 0或錯誤> = 1,我也會收到一些空值爲錯誤的事件。是否有可能根據過濾標準對其進行過濾。 – AlexC
在設置過濾器來完成此操作時,Profiler UI中有一個複選框。無法準確記住文字的內容。 –