我想从所有数据库存储过程中搜索文本.我使用以下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]%';

我想在包括方括号在内的所有存储过程中搜索[ABD],但它没有给出正确的结果.如何更改查询以实现这一点?

推荐答案

避开方括号:

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

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

Sql相关问答推荐

跨多列的PostgreSQL非不同对

数据库索引:如何使用名称和类别对项目进行最佳索引?

使用WHERE子句进行筛选时,SQL SELECT查询返回总计数

一个SQL查询将在需要的地方多次返回同一成员

BigQuery-当子查询不返回任何结果时,所有结果为零

为什么TRY_CONVERT返回一个XML验证错误而不是NULL?

在SQL中返回缺省值,即使查询不返回任何结果

查询每周数据(周一至周日),避免年度日期重叠

导出部分条形码字符串GS1-128

在MS Access Modern图表的X轴上显示时间值时遇到问题

如何为该查询编写正确分区依据

使用递归CTE在BigQuery中获取文件路径

如何使子查询在UPDATE语句期间获得最新更新

计算不同模式的时间跨度

MySQL中的递归查询邻接表深度优先?

PostgreSQL:从多个字段收集特定指标的最后一个条目

使用多个数据库调用重载 CQRS 模式

在 PostgreSQL 中,如何让多个判断约束引用相同的值数组?

BigQuery数组是否包含NULL值的判断方法

为 sqlite 全文搜索 (fts) 创建触发器时出现虚拟表的不安全使用