我有一个大型数据库,想要选择具有特定列名的表名。我在MySQL中做过类似的事情,但在SQL Server上找不到任何信息。
我想做类似的事情:
select [table]
from [db]
where table [has column 'classtypeid']
我该怎么办?
答案 0 :(得分:5)
使用ANSI information_schema视图,这也适用于MySQL
select table_name
from information_schema.columns
where column_name = 'classtypeid'
答案 1 :(得分:2)
你走了:
SELECT C.TABLE_NAME
FROM INFORMATION_SCHEMA.COLUMNS AS C
INNER JOIN INFORMATION_SCHEMA.TABLES AS T ON C.TABLE_NAME = T.TABLE_NAME
AND C.TABLE_SCHEMA = T.TABLE_SCHEMA
WHERE C.COLUMN_NAME = 'classtypeid'
AND T.TABLE_TYPE = 'BASE TABLE'
编辑:请注意,这不会根据包含该列的任何表列出视图。如果您只查询INFORMATION_SCHEMA.COLUMNS,您还将获得视图。