我想显示所有指定列名的表

l--*_*''' 50 sql sql-server-2008

如何获取具有特定列名称的所有表的列表?

Evi*_*ica 92

在每个数据库级别上非常简单

Use DatabaseName
Select * From INFORMATION_SCHEMA.COLUMNS Where column_name = 'ColName'
Run Code Online (Sandbox Code Playgroud)

  • 该解决方案包括视图。有没有一种方法可以确定哪些是表,哪些是视图? (2认同)

Red*_*ter 16

select table_name
from information_schema.columns
where COLUMN_NAME = 'MyColumn'
Run Code Online (Sandbox Code Playgroud)


Dav*_*vid 10

您可以使用信息架构视图:

SELECT DISTINCT TABLE_SCHEMA, TABLE_NAME
FROM Information_Schema.Columns
WHERE COLUMN_NAME = 'ID'
Run Code Online (Sandbox Code Playgroud)

这是"列"视图的MSDN参考:http: //msdn.microsoft.com/en-us/library/ms188348.aspx


小智 7

如果您正在尝试查询Oracle数据库,则可能需要使用

select owner, table_name 
from all_tab_columns
where column_name = 'ColName';
Run Code Online (Sandbox Code Playgroud)


小智 6

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 '%YOUR_COLUMN%' 
ORDER BY schema_name, table_name;
Run Code Online (Sandbox Code Playgroud)

SQL Authority的深度文章