--含有医院编号字段的所有表
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
(
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
--在整个库里查某个值
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