31

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

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

3 回答 3

30

在 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'

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

于 2013-08-14T06:43:47.150 回答
7

你可以运行这个查询

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;
于 2014-10-17T07:30:55.160 回答
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';
于 2019-05-22T09:08:15.073 回答