对整个数据库实例搜索某个字符串

declare@strvarchar(100)
set@str='a'  --要搜索的字符串
declare@snvarchar(4000)
declare tb cursor local for
select d=N'if exists(select 1 from ['+b.name+N'] where ['+a.name+'] like ''%'+@str+N'%'')
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
fetchnextfrom tb into@s
while@@fetch_status=0
begin
exec(@s)
fetchnextfrom tb into@s
end
close tb
deallocate tb

posted @ 2011-11-18 16:50  panpeng  阅读(152)  评论(0编辑  收藏  举报