如何在SQL Server(2005)中找到WITH RECOMPILE元数据?

如何在INFORMATION_SCHEMA,sys.objects或其他一些元数据中找到声明为WITH 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等.

点赞