在SQL中搜索字符串,对表执行操作

时间:2015-01-28 04:16:11

标签: sql sql-server

我在互联网上找到一些存储过程来搜索数据库中的字符串,通常它是由表名使用的。

我的程序包含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

我的操作想要的不止于此,我想在表格上搜索表格名称,例如插入,更新或选择。这意味着只有查找表名(关键字)有动作插入或更新或选择并显示它的使用位置(程序名称,视图...)

有可能吗?

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 + '%'