Sql server 存储过程SQL Server中的文本搜索
有人知道SQL Server中用于文本搜索的脚本吗?我想从SQL Server中的所有存储过程中搜索文本,有人知道我应该使用什么脚本吗?更新:有几种等效方法。这里有一个:Sql server 存储过程SQL Server中的文本搜索,sql-server,Sql Server,有人知道SQL Server中用于文本搜索的脚本吗?我想从SQL Server中的所有存储过程中搜索文本,有人知道我应该使用什么脚本吗?更新:有几种等效方法。这里有一个: SELECT OBJECT_NAME(object_id) FROM sys.sql_modules WHERE Definition LIKE '%searchtext%' AND OBJECTPROPERTY(object_id, 'IsProcedure') = 1 您还可
SELECT
OBJECT_NAME(object_id)
FROM
sys.sql_modules
WHERE
Definition LIKE '%searchtext%'
AND OBJECTPROPERTY(object_id, 'IsProcedure') = 1
您还可以使用:
select distinct object_name(id) from sys.syscomments where text like '%SearchTextHere%'
是否要通过存储过程本身搜索文本 还是表格数据
如果是表数据,那么信息模式如何?例程或系统注释不可靠 这两个文本字段都是nvarchar(4000)(仅限多行syscomments)。因此,您的搜索文本可能会丢失在syscomments的边界上,或者永远找不到SCHEMA.ROUTINES的信息 是nvarchar(最大值) 编辑,2011年10月 更新这个答案
是一个非常有用的免费SSMS插件。-1这与sys.sql\u模块或对象\u定义不同,因为它可能无法工作。。。例程_定义可能没有while进程code@Mitch麦特:我发帖子的时候错了:你只是编辑来纠正它。你否决了我的正确答案…@gbn-如果你否决了这个答案,你应该否决syscomments的答案。事实上,你没有让它看起来很有选择性。我可以理解米奇对此感到恼火,我知道我会的。@Mitch Wheat,@Lieven:对76k代表用户的隐含信任使其成为权威答案,比300代表用户的答案更重要。对我来说,投票否决300代表用户似乎不公平(实际上,答案无论如何都会被忽略)。如果Jon Skeet发布了一个“syscomments”,那么再多的反例也无助于纠正错误信息。不管怎样,投反对票removed@gbn:很公平,我认为是最坏的。与
sys.syscomments
相比,使用sys.sql\u modules
更适合我的特性中的一些缺陷,原因如下所述<如果定义文本的长度超过4000个字符,则code>sys.syscomments会在多行上中断存储过程的定义。+1用于阻止使用sys.syscomments
。关于为什么我们应该使用sys.sql\u模块
,博客详细介绍了一些其他原因。
SELECT
OBJECT_NAME(object_id)
FROM
sys.sql_modules
WHERE
definition LIKE '%mytext%'