[英]How to find sum of multiple columns in a table in SQL Server 2005?
[英]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 + '%'
由於GSquared對SQL Server的中央論壇 ,我發現,有一個叫做標志is_recompiled
在sys.sql_modules
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.