SQL Server 2005中存储过程的文本搜索

8

我该如何查找包含特定文本的存储过程?虽然我知道这种搜索的最佳位置是通过源代码控制工具进行,但在数据库中是否有其他方法呢?

3个回答

15
SELECT ROUTINE_NAME, ROUTINE_DEFINITION 
    FROM INFORMATION_SCHEMA.ROUTINES 
    WHERE ROUTINE_DEFINITION LIKE '%your text here%' 
    AND ROUTINE_TYPE='PROCEDURE'

2
请注意,routine_definition在4000个字符处被裁剪,以防您的程序过长。但sys.sql_modules没有同样的问题。 - PeteT

12
SELECT DISTINCT o.name AS Object_Name,o.type_desc
FROM sys.sql_modules        m 
INNER JOIN sys.objects  o 
    ON m.object_id=o.object_id
WHERE m.definition Like '%Serach_Text%'

2

您可以搜索sys.sql_modules。定义包含存储过程的文本。该视图包含存储过程、视图、UDF等。要限制自己只查找存储过程,应与sys.procedure上的object_id关联。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接