从所有表及所有库中搜索关键字
在所有表中搜索关键字
declare @str varchar(100)
set @str='a' --要搜索的字符串
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
从所有库中搜索
if object_id('up_ValueSearch')is not null drop proc up_ValueSearch
go
create proc up_ValueSearch @db varchar(200),@str varchar(100)
as
begin
declare @s varchar(8000)
declare tb cursor local for
select 'if exists(select 1 from ['+b.name+'] where ['+a.name+'] like ''%'+@str+'%'')
print '' ['+@db+']..['+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
end
go
--调用示例
sp_msforeachdb 'up_ValueSearch ?,''aa'''
---------------------
转载自:
原文:https://blog.youkuaiyun.com/xys_777/article/details/5708217
本文提供了一种在SQL中实现全文检索的方法,包括如何在所有表中搜索特定关键字以及如何跨多个数据库进行搜索。通过定义存储过程和使用游标,可以有效地查询包含指定字符串的所有字段。
8513

被折叠的 条评论
为什么被折叠?



