加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

[SqlServer] 全库搜索指定字符串

发布时间:2020-12-12 13:10:46 所属栏目:MsSql教程 来源:网络整理
导读:今天有同事问我要个脚本,给定一个字符串,在库里查出哪个表的哪个列的值包含它。写完之后,觉得自己将来可能也要用到,就暂且在这备个份。 if OBJECT_ID('tempdb..#t') is not nulldrop table tempdb..#tGOdeclare @s nvarchar(256) --指定字符串set @s='爱

今天有同事问我要个脚本,给定一个字符串,在库里查出哪个表的哪个列的值包含它。写完之后,觉得自己将来可能也要用到,就暂且在这备个份。

if OBJECT_ID('tempdb..#t') is not null
	drop table tempdb..#t
GO
declare @s nvarchar(256) --指定字符串
set @s='爱'

declare @sql nvarchar(max)
select top 100 @sql=ISNULL(@sql+';','')+'insert #t select top 1 '''+tablename+''','''
	+columnname+''','+columnname+' from '+tablename+' where charindex('''+@s+''','+columnname+')>0'
from
(
	select a.name as tablename,b.name as columnname
	from sysobjects a
	join syscolumns b on a.id=b.id
	join systypes c on b.xtype=c.xtype
	where a.type='u'
	and c.name in('text','ntext','varchar','char','nvarchar','nchar')
) t

create table #t(tablename nvarchar(128),columnname nvarchar(128),columndata nvarchar(max));
--print @sql
exec(@sql)
select * from #t
GO

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读