在存储过程SQL Server中进行文本搜索

时间:2011-01-27 05:11:42

标签: sql-server

是否有人知道在SQL Server中用于文本搜索的脚本?我想从SQL Server中的所有存储过程中搜索一个文本,有谁知道我应该使用什么脚本?

4 个答案:

答案 0 :(得分:10)

INFORMATION_SCHEMA.ROUTINES或syscomments 可靠。

两者的文本字段都是nvarchar(4000)(仅限多行syscomments)。因此,您的搜索文本可能会丢失在syscomments的边界上,或者从未找到INFORMATION_SCHEMA.ROUTINES

sys.sql_modules.definition是nvarchar(max)

SELECT
    OBJECT_NAME(object_id)
FROM
    sys.sql_modules
WHERE
    definition LIKE '%mytext%'

编辑,2011年10月

将此答案更新。

Red Gate SQL Search是一个非常有用的免费 SSMS插件。

答案 1 :(得分:2)

更新:有几种等效的方法。这是一个:

SELECT 
    OBJECT_NAME(object_id) 
FROM 
    sys.sql_modules 
WHERE 
    Definition LIKE '%searchtext%' 
    AND OBJECTPROPERTY(object_id, 'IsProcedure') = 1 

答案 2 :(得分:1)

您也可以使用:

select distinct object_name(id) from sys.syscomments where text like '%SearchTextHere%'

答案 3 :(得分:0)

您是否希望通过存储过程自行搜索文本?

还是表格数据?

如果是表格数据,LIKE怎么样?