2014-12-25 69 views
3

我有一個存儲過程,我們稱之爲'MyStoredProc',它每隔幾秒就會調用一次。SQL Server分析器沒有通過TextData列過濾器進行過濾

我想過濾它,因爲它是混亂的視圖。

的PROC被稱爲像exec sp_executesql N'Exec @Return = [dbo].[MyStoredProc]....

我已經在的TextData列中有兩個Not Like濾波器,其它文本正常工作。然而,這第三個不起作用。電話仍在播出。

我輸入了不同的變體:%[MyStoredProc]%或%MyStoredProc%或MyStoredProc。

他們不工作。
這是什麼適當的語法? 也可以TextData過濾器工作的變量名?

我正在使用Profiler 2014作爲2012引擎的目標。

+0

代碼是什麼?這不是一個編程問題。你不明白什麼部分? –

+1

這是一個關於如何使用程序員使用的工具的問題,不應該因爲給定的原因而關閉。操作提供了所有需要回答的信息。請重新投票。 – rene

+0

我不能重現這個問題('MyStoredProc'是錯的,所以'%[MyStoredProc]%'[由於方式(NOT)LIKE解釋方括號](http://stackoverflow.com/questions/13198870/a -couple-of-basic-sql-profiler-questions),但'%MyStoredProc%'應該工作)。我的設置稍有不同(Profiler和引擎都是SQL2014),但如果這有所作爲,我會感到驚訝。請把完整的SQL語句放在你的問題中,我假設那裏還有一個'DECLARE @ Return'?您是否可以通過從SQL Server Management Studio手動執行完全相同的SQL語句來重現該問題? –

回答

1

How Filtering String From profiler textData 正如你所看到的,你應該把過程的名字(我建議不用其他架構名稱,DBO)對%%之間(不帶支架)

+1

我在我的問題中提到,這沒有奏效。 –

+1

@Tony,這是正確的語法,所以必須有別的東西導致你的問題。沒有模式名稱的建議也是合理的,因爲有時文本數據將顯示爲'... [dbo]。[MyStoredProc] ...'。在上下文中小心使用方括號(例如'%[MyStoredProc]%'),因爲它們對於T-SQL LIKE子句有特殊的含義。您可以改爲使用下劃線。 – OutstandingBill

+0

我有一個**不喜歡**的過濾器,我試圖爲** Like **添加一個過濾器......但是這不起作用。看來我只能在一個組中添加過濾器(** Like **或** Not Like **)...但不能同時添加。 –

1

不知道這將有助於OP,但我已經多次遇到這種情況,只需用各種類型的查詢「擺弄」,將數據導出到Excel,然後手動過濾結果。

但是,我發現一種方法來解決這個問題,似乎一直工作。首先,創建一個新的Profiler模板(文件>模板>新模板...)使用所有需要的設置設置模板,或使用選項在現有模板上創建新模板:。我知道我最初使用這個選項來模板,我認爲這可能是問題所在。

現在,當您去添加新過濾器時,您需要通過編輯模板來添加它們。如果我更新了跟蹤的屬性值,我無法讓我的TextData過濾器正常工作。相反,請轉到文件>模板>編輯模板...並選擇並更新您的模板。

保存模板,關閉Profiler並重新打開模板。當你運行模板時,過濾器應該工作。

我不確定是否有更簡單的方法,但我確實知道,在保存,關閉並重新打開我的模板之前,我無法讓我的過濾器工作。我不確定問題是什麼,但我猜SQL Server Profiler正在緩存一些舊的過濾器值,這些舊的過濾器值沒有使用TextData字段進行更新。發生這種情況時,應用程序的重新啓動似乎是唯一的修復方法。