1.查询数据库中所有含有某个列名的表
select TABLE_NAME from INFORMATION_SCHEMA.COLUMNS a where column_name = '关键字'
2.查询数据库所有含有某个关键字的表
if OBJECT_ID('temp_search_table') is not null --判断是否需要建表
drop table temp_search_table
Go
create table temp_search_table --建表
(
table_name nvarchar(100),
column_name nvarchar(100),
column_search_value nvarchar(max)
)
Go
declare @sql nvarchar(max);
declare @search_str nvarchar(100);
set @sql = ''
set @search_str = '%合格%'; --这里是你要查找的某个关键字,修改为你想要找的关键字
select @sql = @sql + 'insert into temp_search_table '+
'select '''+t.name +''' as table_name,''' +
c.name+ ''' as column_name, ['+
c.name + '] from ['+t.name +
'] where ['+c.name +'] like '''+@search_str+''';'
from sys.tables t
inner join sys.columns c
on t.object_id = c.object_id
inner join sys.types tp
on c.system_type_id = tp.system_type_id
and c.user_type_id = tp.user_type_id
and tp.name in ('char','varchar','nchar','nvarchar')
where t.name <> 'temp_search_table'
--select @sql
exec(@sql)
--最后查找,你找到的内容
select *
from temp_search_table