【发布时间】:2010-09-06 21:07:03
【问题描述】:
我有一个大型数据库,想选择具有特定列名的表名。我在 MySQL 中做过类似的事情,但在 SQL Server 上找不到任何信息。
我想做这样的事情:
select [table]
from [db]
where table [has column 'classtypeid']
我该怎么做?
【问题讨论】:
标签: sql sql-server
我有一个大型数据库,想选择具有特定列名的表名。我在 MySQL 中做过类似的事情,但在 SQL Server 上找不到任何信息。
我想做这样的事情:
select [table]
from [db]
where table [has column 'classtypeid']
我该怎么做?
【问题讨论】:
标签: sql sql-server
使用 ANSI information_schema 视图,这也适用于 MySQL
select table_name
from information_schema.columns
where column_name = 'classtypeid'
【讨论】:
给你:
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,您还将获得返回视图。
【讨论】: