如何在INFORMATION_SCHEMA,sys.objects或某些其他元数据中找到用RECOMPILE声明的SP?
(我在系统运行状况监视中添加了一些代码,并希望警告那些在没有正当理由的情况下声明的代码。)
注意:我不是要搜索“ WITH RECOMPILE”的常规文本-我已经可以这样做,但是它将为文本的任何注释或文字版本带来误判。
最佳答案
为了快速而又肮脏地使用:
SELECT
o.name
FROM
syscomments c
INNER JOIN sys.objects o ON
o.object_id = c.id
WHERE
c.text LIKE '%WITH RECOMPILE%'
不过,在实际应用中使用该方法可能不是一个好主意。如果我有几分钟的时间,我将尝试找出一种更清洁的方法。上面的代码还将捕获已注释掉该字符串的proc,使用MS SQL Server特定表的syscomments等。