sqlserver查询某个字段在哪些表中存在
--含有医院编号字段的所有表 select?a.[name]?from?sysobjects?a, ( ??????select?[id],count(*)?b?from?syscolumns ??????where?[name]?='column1' ??????group?by?[id] ) b?where?a.[id]=b.[id]?order by a.name asc ? --同时含有医院编号和科室编号字段的所有表 ? select?a.[name]?from?sysobjects?a left?join select?[id],count(*)?b?from?syscolumns?where?[name] in('column1','column2')?group?by?[id]?having?count(*)>1 )?b on?a.[id]=b.[id] where?b.id?is?not?null
select?a.[name]?from?sysobjects?a left?join ( count(*)?b?from?syscolumns?where?[name] in('column1','column2')?group?by?[id]?having?count(*)>1 )?b on?a.[id]=b.[id] where?b.id?is?not?null --在整个库里查某个值 declare @str varchar(100) set @str='1' ?--要搜索的字符串? declare @s varchar(8000) declare tb cursor local for select s='if exists(select 1 from ['+b.name+'] where convert(varchar,['+a.name+']) like ''%'+@str+'%'') ?print ''select top 5 ['+a.name+'],* from ['+b.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,56,60,108,106) 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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |