ストアドプロシージャで使用される式のすべてのインスタンスを検索しようとしていますが、これがあります:
SELECT name, type_desc, create_date, modify_date
FROM sys.procedures
WHERE OBJECT_DEFINITION(object_id) LIKE '%ufn_TurnFlagOn(5,ColumnA)%'
ORDER BY name
ただし、これは、次のような関数パラメーター間にスペースがある可能性のある sp を返しません。
ufn_TurnFlagOn( 5,ColumnA )
ufn_TurnFlagOn(5, ColumnA)
ufn_TurnFlagOn( 5,ColumnA)
ご注意ください:
- このように「_」ワイルドカードを使用することはできません。これ
LIKE '%ufn_TurnFlagOn(_5_,_ColumnA_)%'
は 1 文字に正確に一致するためです。したがって、一致ufn_TurnFlagOn(5,ColumnA)
しません。 - 私は CLR 統合を持っていない (また、今すぐ登録することもできない) ため、正規表現を使用できません。
別の方法として、すべての可能性を考慮してクエリを複数回実行することもできますが、これを 1 つのクエリで実行するより良い方法はありますか?