查找哪个表具有该列数据

时间:2013-06-24 01:19:19

标签: mysql sql

我知道如何通过运行:

找到哪个表具有该列名
select * From INFORMATION_SCHEMA.COLUMNS Where column_name = 'column value'

我现在需要的是找到哪些表具有某些列数据。 它属于哪个列并不重要,我可以找到它,我只是不知道要查看哪个表。

加入这些表不是解决方案,因为有很多表。

PLS。如果你有想法,请告诉我。 感谢。

1 个答案:

答案 0 :(得分:1)

这会为你做这个工作吗?

declare @data varchar(50)
    ,@sql varchar(max)
select @data = '%test%'

create table #Temp ([Table] varchar(200), [Column] varchar(200), [Data] varchar(max))

select @sql = isnull(@sql, '') + 'insert into #Temp select ''' + sys.tables.name + ''', ''' + sys.columns.name + ''', ' + sys.columns.name + ' from [' + sys.tables.name + '] where [' + sys.columns.name + '] like ''' + @data + ''';'
from sys.tables
inner join sys.columns
    on sys.columns.object_id = sys.tables.object_id

exec(@sql)

select * from #Temp order by [Table], [Column]
drop table #Temp