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

我如何获得具有特定列名的所有表的列表?

每个数据库级别都很简单

Use DatabaseName Select * From INFORMATION_SCHEMA.COLUMNS Where column_name = 'ColName' 
 select table_name from information_schema.columns where COLUMN_NAME = 'MyColumn' 

您可以使用信息模式视图:

 SELECT DISTINCT TABLE_SCHEMA, TABLE_NAME FROM Information_Schema.Columns WHERE COLUMN_NAME = 'ID' 

以下是“列”视图的MSDN参考: http : //msdn.microsoft.com/en-us/library/ms188348.aspx

 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; 

由SQL Authority深入文章

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

 select owner, table_name from all_tab_columns where column_name = 'ColName'; 
 SELECT T.TABLE_NAME, C.COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS C INNER JOIN INFORMATION_SCHEMA.TABLES T ON T.TABLE_NAME = C.TABLE_NAME WHERE TABLE_TYPE = 'BASE TABLE' AND COLUMN_NAME = 'ColName' 

这只返回表格,忽略任何有兴趣的人的意见!

– 获取包含选定列名的表格

 SELECT c.name AS ColName, t.name AS TableName FROM sys.columns c JOIN sys.tables t ON c.object_id = t.object_id WHERE c.name LIKE '%batchno%' 

它的工作…

您可以在信息模式中find您要查找的内容: SQL Server 2005系统表和视图我认为您需要使用SQL Server 2005或更高版本才能使用本文中介绍的方法,但是对于早期版本,可以使用类似的方法。