我在互联网上找到一些存储过程来搜索数据库中的字符串,通常它是由表名使用的。
我的程序包含SELECT
语句,如下所示:
select distinct s.name
from sysobjects s
inner join syscomments c on c.id = s.id
and charindex(@keyword,c.text) > 0
where s.type IN ('V', 'P')
order by 1
我的操作想要的不止于此,我想在表格上搜索表格名称,例如插入,更新或选择。这意味着只有查找表名(关键字)有动作插入或更新或选择并显示它的使用位置(程序名称,视图...)
有可能吗?
答案 0 :(得分:0)
首先,不要使用sysobjects和syscomments,因为它们已经被弃用了很长一段时间。
如果你只关心单词出现在对象文本中,你可以像这样使用通配符搜索
select top 100 *
from sys.sql_modules sm
inner join (select searchString = 'insert' union all
select searchString = 'update' union all
select searchString = 'delete') x
on sm.definition like '%' + x.searchString + '%'