特定の文字列 (この場合は電子メール アドレス) について何千ものストアド プロシージャと関数を検索しようとしていますが、コメント ブロックにある場合は無視したいと考えています。
これはオブジェクトを検索するための SQL 構文ですが、何百もの結果があり、電子メール アドレスがコードで使用されているのか、それとも単にコメント ブロックで使用されているのかを判断するために、それぞれを調べたくありません。
SELECT DISTINCT
o.name objectname
FROM sys.sql_modules m
INNER JOIN sys.objects o
ON m.object_id = o.object_id
WHERE definition LIKE '%somebody@somewhere.com%'
ORDER BY o.name
正規表現を使用できる CLR ライブラリ (SQLSharp) がありますが、コメントと有効なコードを識別する正規表現がわかりません。
RegEx に精通していて SQL Server に精通していない場合、コメントは 2 つのダッシュ (例: --) で始まる 1 行、または /* で始まり */ で終わる複数の行として定義されます。
これを理解しようと考えるだけで、頭が痛くなります。