簡體   English   中英

如何在SQL Server(2005)中查找WITH RECOMPILE元數據?

[英]How to find WITH RECOMPILE metadata in SQL Server (2005)?

如何在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%'

但是,在實際應用中使用該方法可能不是一個好主意。 如果我有幾分鍾的時間,我將嘗試找出一種更清潔的方法。 上面的代碼還將捕獲已注釋掉該字符串,使用MS SQL Server特定表syscomments等的proc。

這是我使用的查詢,它將為任何給定的搜索字符串搜索用戶定義的視圖,存儲過程和函數:

DECLARE @strSearch varchar(50)
SELECT @strSearch = 'my search string'

SELECT
    so.[Name],
    OBJECT_ID(so.[Name])    
FROM
    [sysobjects] so
JOIN
    syscomments sc
ON
    sc.[ID] = OBJECT_ID(so.[Name])
WHERE 
    (so.[xtype] = 'FN' OR so.[xtype] = 'P' OR so.[xtype] = 'V') AND
    so.[category] = 0 AND
    sc.encrypted = 0 AND
    sc.[text] like '%' + @strSearch + '%'

由於GSquaredSQL Server的中央論壇 ,我發現,有一個叫做標志is_recompiledsys.sql_modules

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM