显示包含某列的所有表

时间:2013-08-08 19:24:42

标签: sql sql-server sql-server-2012

我正在使用SQL Server 2012,并想知道是否有办法找到包含某个列的给定数据库中的所有表?

2 个答案:

答案 0 :(得分:2)

select
    quotename(S.name) + '.' + quotename(T.name) as [Table]
from sys.columns C
    join sys.tables T on T.object_id = C.object_id
    join sys.schemas S on S.schema_id = T.schema_id
where C.name = 'ColumnName'
order by 1

答案 1 :(得分:1)

我认为最简单的方法是使用INFORMATION_SCHEMA.COLUMNS表:

select c.SCHEMA_NAME, c.TABLE_NAME
from INFORMATION_SCHEMA.COLUMNS c
where c.COLUMN_NAME = @YOURCOLUMNNAME;