5

我知道如何通过运行找到哪个表具有该列名:

select * From INFORMATION_SCHEMA.COLUMNS Where column_name = 'column value'

我现在需要的是找到哪些表具有特定的列数据。不管它属于哪一列,我都能找到它,我只是不知道要看哪个表。

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

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

4

1 回答 1

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
于 2013-06-24T09:53:57.457 回答