繁体   English   中英

在SQL Server中为select语句使用表元数据?

[英]Use table metadata for select statement in SQL Server?

我有一个大型数据库,并希望选择具有特定列名称的表名称。 我在MySQL中做过类似的事情,但在SQL Server上找不到任何信息。

我想做的事情如下:

select [table] 
from [db] 
where table [has column 'classtypeid']

我怎么能这样做?

使用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,您还将获得视图。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM