私たちはデータベースのProjectID
フィールドを構造化する方法を更新しています。現在、特定のプロジェクトを識別するPD80400
などの値があります。TSQL LIKEの一重引用符とワイルドカードをエスケープ
への参照が含まれています、私はどんな手続き/ビュー/テーブル/機能/などのために私達のデータベースを検索する必要があり、このようなProjectID NOT LIKE 'PD%'
として
Where
句にPDXXXXX
形式を使用するストアドプロシージャは可能性があります。PD%
現在、次のスクリプトを使用していますが、%PD%
を検索せずにWhere ProjectID NOT LIKE '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