Sql-Server
使用帶撇號的 LIKE
我一直在執行伺服器端跟踪,以了解如何在我的數據庫中呼叫特定的儲存過程。
我正在執行以下查詢以從生成的跟踪文件中獲取數據:
select TextData, db_name(databaseid) from fn_trace_gettable( 'R:\Profiler\udpProductTaxRateGet4.trc', default) fn join sys.trace_events te on fn.EventClass = te.trace_event_id where -- 1=1 --and EventClass = 42 and textdata like '%udpProductBulletPointSelectByTier1NoteTypeCode%' --and db_name(databaseid) = 'US16AUTPProduct' order by starttime desc
但是如下圖所示,像這樣的行太多了:
declare @p5 int set @p5=86400 exec dbo.udpProductBulletPointSelectByTier1NoteTypeCode @Tier1=N'AR763',@LanguageID=2,@SeasonItemID=N'16AUT',@ListNoteTypeCode=N'',@CacheDuration=@p5 output select @p5
更具體地說,該過程是使用空參數值呼叫的
@ListNoveTypeCode
@ListNoteTypeCode=N''
如何過濾掉所有@ListNoteTypeCode=N’‘的行??
單引號字元沒有特殊意義
LIKE
您需要將它們加倍以在任何字元串文字中轉義它們。
因此,您嘗試不匹配的字元串中的兩個連續單引號變為如下四個。
And textdata not like '%@ListNoteTypeCode=N''''%'
從圖像上看,BulletPoint 似乎也是您需要尋找的。將 Like 語句更改為 like ‘%udpProductBulletPointSelectByTier1NoteTypeCode%BulletPoint%’
這應該會減少結果。