急!如何搜索一个数据库里面的所有表格的所有字段?

donniec 2011-08-10 04:29:32
做一个搜索关键字的程序,现在手上有一个数据库,里面有许多表格,而且表格不停的增加,结构不一样,内容不一样,现在要做一个超级搜索,可以搜索里面的所有内容,然后显示出关键字在哪个表格出现,显示出整行的内容,关键字在哪个位置出现,啊......,怎么做呢?求解决办法,急急急!
...全文
230 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
donniec 2011-08-11
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 chiyan42 的回复:]
顶楼上的思路。其实这种问题只能用存储过程来解决,单一一个sql语句已经根本不可能实现了。

还有楼主~~你应该发在sql的论坛啊-。-怎么跑到c#来了~~
[/Quote]

因为我是用C#来实现具体程序的,不是很了解这个问题如何快速解决。
chiyan42 2011-08-10
  • 打赏
  • 举报
回复
顶楼上的思路。其实这种问题只能用存储过程来解决,单一一个sql语句已经根本不可能实现了。

还有楼主~~你应该发在sql的论坛啊-。-怎么跑到c#来了~~
moxcm 2011-08-10
  • 打赏
  • 举报
回复
%之间的是查询关键词
moxcm 2011-08-10
  • 打赏
  • 举报
回复
给你个参考吧,你可以试试:

begin
declare @tbname varchar(50)
declare tbroy cursor for select name from sysobjects
where xtype= 'u ' --第一个游标遍历所有的表

open tbroy
fetch next from tbroy into @tbname
while @@fetch_status=0
begin

declare @colname varchar(50)
declare colroy cursor for select name from syscolumns
where id=object_id(@tbname) and xtype in (
select xtype from systypes
where name in ( 'varchar ', 'nvarchar ', 'char ', 'nchar ') --数据类型为字符型的字段
) --第二个游标是第一个游标的嵌套游标,遍历某个表的所有字段

open colroy
fetch next from colroy into @colname
while @@fetch_status=0
begin

declare @sql nvarchar(1000),@j int
select @sql= 'select @i=count(1) from ' +@tbname + ' where '+ @colname+ ' like '+ '''%mowen%'''
exec sp_executesql @sql,N'@i int output',@i=@j output --输出满足条件表的记录数
if @j> 0
BEGIN
select 包含字串的表名=@tbname
--exec( 'select distinct '+@colname+' from ' +@tbname + ' where '+ @colname+ ' like '+ '''%'+@string+ '%''')
END
fetch next from colroy into @colname
end

close colroy
deallocate colroy

fetch next from tbroy into @tbname
end
close tbroy
deallocate tbroy
end
go

110,537

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧