SQL中如何根据字段名查找该字段名存在于数据库的哪些表中?9
发布网友
发布时间:2023-09-19 04:53
我来回答
共2个回答
热心网友
时间:2024-12-11 20:59
上处的字段名是指的表中的列名 还是指的 列中某一个 值。
如果是指的列名的话,很简单
select sysobjects.name as tablename,syscolumns.name as columnname
from syscolumns join sysobjects on sysobjects.id = syscolumns.id
where syscolumns.name like '%此处为列名%'
如果是指的一个值的话,要遍历数据库了。如下:
declare@str varchar(100)
set@str='张三'--要搜索的字符串
declare@s varchar(8000)
declaretb cursorlocalfor
selects='if exists(select 1 from ['+b.name+'] where convert(varchar,['+a.name+']) like ''%'+@str+'%'')
print ''select ['+a.name+'] from ['+b.name+']'''
fromsyscolumns a joinsysobjects b ona.id=b.id
whereb.xtype='U'anda.status>=0
--所查列的字段类型
anda.xusertype in(175,239,231,167,56,60,108,106)
opentb
fetchnextfromtb into@s
while @@fetch_status=0
begin
exec(@s)
fetchnextfromtb into@s
end
closetb
deallocatetb
热心网友
时间:2024-12-11 21:00
这个要结合两个表来进行查找一个是sysobjects一个是syscolumns。他们有个共同的字段是id来进行联系。查询的代码如下:
select
*
from
sysobjects
s
where
type='u'
and
id
in(select
id
from
syscolumns
s
where
s.name='待查找字段名')