我想显示所有指定了列名的表
我如何获得具有特定列名的所有表的列表?
每个数据库级别都很简单
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或更高版本才能使用本文中介绍的方法,但是对于早期版本,可以使用类似的方法。