发布网友 发布时间:2022-04-08 01:05
共5个回答
懂视网 时间:2022-04-08 05:27
declare @str varchar(100)
set @str=‘我要找的‘ --要搜索的字符串
declare @s varchar(8000)
declare tb cursor local for
select ‘if exists(select 1 from [‘+b.name+‘] where [‘+a.name+‘] like ‘‘%‘+@str+‘%‘‘)
print ‘‘ [‘+b.name+‘].[‘+a.name+‘]‘‘‘
from syscolumns a join sysobjects b on a.id=b.id
where b.xtype=‘U‘ and a.status>=0
and a.xusertype in(175,239,231,167)
open tb
fetch next from tb into @s
while @@fetch_status=0
begin
exec(@s)
fetch next from tb into @s
end
close tb
deallocate tb
从数据库中检索关键字
标签:
热心网友 时间:2022-04-08 02:35
用游标循环以下,可能效率有点低,以下是我写的一个存储过程语句供参考热心网友 时间:2022-04-08 03:53
说一下你的数据库还有“关键字”呗追问关键字 是表中列的值,不是表名也不是列明,就想查询该关键字是在哪个表中追答查找含有相同字段的表(已知字段名)
select a.name as tbleName, b.name as columnname
from sysobjects a, syscolumns b
where a.id=b.id and a.type='U'and b.name='该关键字'
试一下吧,tbname是该关键字所在表,columname是该关键字所在列
热心网友 时间:2022-04-08 05:27
那就要用到索引了,具体怎么写语句 我忘了 你可以看下书 这个语句应该不难。。。。热心网友 时间:2022-04-08 07:19
该 “关键字” 是表名中?字段名中?还是表中的记录中?追问关键字 是表中列的值,不是表名也不是列明,就想查询该关键字是在哪个表中追答我能想到的处理方法就是建一个存储过程,先查询出所有的表名,然后遍历表名,查询出每个表的字段,然后在把 每个字段=关键字 进行查询。如果能查到记录则返回表名字段名。
入参要加入关键字字段的类型,查询出表中字段构造where条件时需要排除类型不同的字段(如果不排除会报错).