在mysql中全库搜索指定字符串_sql数据库全库搜索字符串

在查询分析器中 先输入下面的代码 创建一个存储过程

if   exists   (select   *   from   dbo.sysobjects   where   id   =   object_id(N'[dbo].[p_search]')   and   OBJECTPROPERTY(id,   N'IsProcedure')   =   1)

drop   procedure   [dbo].[p_search]

GO

/*--搜索某个字符串在那个表的那个字段中

create   proc   p_search

@str   Nvarchar(1000)   --要搜索的字符串

as

if   @str=''   return

declare   @s   Nvarchar(4000)

create   table   #t(表名   sysname,字段名   sysname)

declare   tb   cursor   local   for

select   s='if   exists(select   1   from   ['+replace(b.name,']',']]')+']   where   ['+a.name+']   like   N''%'+@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.xtype   in(175,239,99,35,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

然后查询你想要的东西

/*--调用

use    yourdatabasename

exec   p_search   N'你的字符串

--*/

或者:直接use库后,运行如下代码:

declare   @str   varchar(100)

set   @str='王丽燕'     --要搜索的字符串

declare   @s   varchar(8000)

declare   tb   cursor   local   for

select   s='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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值