找到具有特定列的sql表名

时间:2013-08-13 14:20:06

标签: sql sql-server

他们以任何其他方式或sql查询查找具有特定列的数据库表名,而不是如下所示:

SELECT TABLE_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE COLUMN_NAME = 'NameID'

3 个答案:

答案 0 :(得分:26)

在SQL Server中,您可以查询sys.columns

类似的东西:

 SELECT
     t.name
 FROM
     sys.columns c
        inner join
     sys.tables t
        on
           c.object_id = t.object_id
 WHERE
     c.name = 'NameID'

如果您有多个模式中的表,则可能需要额外的查找来解析模式名称。

答案 1 :(得分:5)

您可以运行此查询

SELECT t.name AS table_name,
SCHEMA_NAME(schema_id) AS schema_name,
c.name AS column_name
FROM sys.tables AS t
INNER JOIN sys.columns c ON t.OBJECT_ID = c.OBJECT_ID
WHERE c.name LIKE '%Column%' -- write the column you search here
ORDER BY schema_name, table_name;

答案 2 :(得分:0)

对于Oracle数据库。使用以下查询:

select table_name from all_tab_columns where column_name = 'NameID';

如果您具有DBA特权,则可以尝试使用以下命令:

select table_name from dba_tab_columns where column_name = 'NameID';