1
我們正在對數據庫中構建ProjectID
字段的方式進行更新。目前存在諸如PD80400
的值,其識別特定項目。在TSQL中使用單引號和通配符LIKE
有可能保存其使用PDXXXXX
格式Where
條款的方法,如ProjectID NOT LIKE 'PD%'
我需要尋找我們的數據庫中的任何程序/瀏覽/表/功能/等,它包含一個參考
PD%
目前我正在使用以下腳本,但在捕獲包含Where ProjectID NOT LIKE 'PD%'
而沒有搜索%PD%
....的測試過程時遇到了問題......它返回的結果太多太多,例如任何與Update, Updated, etc
這些字相關的不良結果。
我的腳本:
SELECT DISTINCT a.[name], b.[text], CASE WHEN a.type IN ('FN', 'TF') THEN 'Function' WHEN a.type = 'P' THEN 'Stored Procedure' WHEN a.type = 'V' THEN 'View' ELSE 'Unknown' END AS 'ObjectType', a.type
FROM sysobjects a
INNER JOIN syscomments b on a.id = b.id
WHERE b.[text] LIKE '%PD%' AND a.name = 'AAAAAAAAAAAAA_TBG_MM_TestProcedure_PDSearch'--AND b.[text] NOT LIKE 'update%' AND b.[text] NOT LIKE 'EmpD%' AND b.[text] NOT LIKE 'updated' AND a.name NOT LIKE 'Z_OLD%' AND a.name NOT LIKE 'ZOLD%'
ORDER BY ObjectType
我應該如何格式化我
LIKE
聲明,以捕捉例子像我上面列出所有沒有額外的結果嗎?
好極了!非常感謝,這比我希望的效果更好 – gruff
@gruff高興地幫忙! – SqlZim