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

我想从我的所有数据库stored procedures搜索文本。 我使用下面的SQL

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 '%[ABD]%';

我想在包括方括号的所有stored procedures搜索[ABD] ,但它没有给出正确的结果。 我怎样才能改变我的查询来实现这一目标?


退出方括号:

...
WHERE m.definition Like '%[ABD]%' ESCAPE ''

然后方括号将被视为字符串文字而不是通配符。


试试这个请求:

询问

SELECT name
FROM   sys.procedures
WHERE  Object_definition(object_id) LIKE '%strHell%'

您是否尝试过使用一些第三方工具来执行搜索? 在那里有几种免费的,这为我节省了很多时间。

以下是我使用过的两个SSMS Addins,取得了很好的成绩。

ApexSQL搜索 - 在数据库中搜索模式和数据,并具有附加功能,例如依赖关系跟踪等...

SSMS工具包 - 与前一个和其他一些酷炫功能具有相同的搜索功能。 对于SQL Server 2012不是免费的,但仍然非常实惠。

我知道这个答案不是100%与问题有关(更具体),但希望其他人会发现这个问题很有用。

链接地址: http://www.djcxy.com/p/55873.html

上一篇: Search text in stored procedure in SQL Server

下一篇: select distinct words from pdf files stored in FILESTREAM