回答

3

用途:

SELECT OBJECT_NAME(m.object_id), m.* 
    FROM SYS.SQL_MODULES m 
WHERE m.definition like N'%text_youre_looking_for%' 

SYSCOMMENTSINFORMATION_SCHEMA.routines有NVARCHAR(4000)列。所以如果在位置3998使用「text_youre_looking_for」,它將不會被找到。 SYSCOMMENTS確實有多行,但是截斷了INFORMATION_SCHEMA.routines

+0

感謝您爲我設置直線。 – JNK 2010-10-21 19:16:51

+2

@JNK:爲了記錄,我沒有讓你失望。 – 2010-10-21 19:17:24

+0

@OMG - 沒有biggie,我發佈了一個錯誤的答案:) – JNK 2010-10-21 19:17:55

8
SELECT 
    OBJECT_SCHEMA_NAME(object_id) + '.' + OBJECT_NAME(object_id) 
FROM 
    sys.sql_modules 
WHERE 
    definition like '%whatever%' 

syscomments中是傳統和分裂定義爲nvarchar的這樣4000塊冒着沒有找到你想要的東西。這同樣適用於INFORMATION_SCHEMA.ROUTINES

+1

+1,'OBJECT_SCHEMA_NAME()'比聯接到sys.objects然後sys.schemas更好! – 2010-10-21 19:24:55

0

您可以編寫腳本並搜索腳本。

1

我的同事最近向我推薦了這個。它正如其他人注意到一些類似的搜索,但有一點更增加。

DECLARE 
@chvStringToFind varchar(256), /* String to find */ 
@chrObjectType char(2),--=null, /* Only look for objects of this type */ 
@intNbCharToExtract int 
--=50 /* Number of characters to extract before and after the string to find */ 
--exec DBA_FindStringInDB @chvStringToFind='sp_helpdia', @chrObjectType=null, @intNbCharToExtract=50 
SET @chvStringToFind = 'EnterSearchTextHere' -- Change this to search 
SET @chrObjectType = NULL 
SET @intNbCharToExtract = 50 

SELECT t.Name, t.TypeDescription, t.CreationDate, t.ModificationDate, 
'...' + SUBSTRING 
(
t.ObjectDefinition, 
CHARINDEX(@chvStringToFind, t.ObjectDefinition) - @intNbCharToExtract, 
LEN(@chvStringToFind) + (@intNbCharToExtract*2) 
) + '...' AS Extract 
FROM 
(
SELECT o.name AS Name, 
o.type_desc AS TypeDescription, 
o.create_date AS CreationDate, o.modify_date AS ModificationDate, 
OBJECT_DEFINITION(object_id) AS ObjectDefinition 
FROM sys.objects o 
WHERE 
((o.type IN ('AF', 'FN', 'IF', 'P', 'TF', 'TT', 'U', 'V', 'X') AND @chrObjectType IS NULL) OR o.type = @chrObjectType) 
AND OBJECT_DEFINITION(o.object_id) LIKE '%' + @chvStringToFind + '%' 
) AS t 
ORDER BY TypeDescription, Name 
6

紅門有一個名爲Sql Search是我比較喜歡的免費工具。它保留了一個索引,以便在第一次搜索後,它非常快速(甚至第一個非常好)。它可以搜索procs中的文本以及表格和視圖定義等。有一些過濾功能可以使它更容易使用。搜索結果以非常有用的方式顯示,並突出顯示對象的全文和搜索文本。

+1

太棒了,我知道他們有一個,但不知道我不知道它是免費的。 – Prabhu 2010-10-21 20:00:51

+1

+1優秀的公司工具 - 強烈推薦!不能再活下去了..... – 2010-10-21 20:35:10

相關問題