【问题标题】:Use table metadata for select statement in SQL Server?在 SQL Server 中为 select 语句使用表元数据?
【发布时间】:2010-09-06 21:07:03
【问题描述】:

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

我想做这样的事情:

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

我该怎么做?

【问题讨论】:

    标签: sql sql-server


    【解决方案1】:

    使用 ANSI information_schema 视图,这也适用于 MySQL

    select table_name 
    from information_schema.columns 
    where column_name = 'classtypeid'
    

    【讨论】:

      【解决方案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,您还将获得返回视图。

      【讨论】:

        猜你喜欢
        • 2012-06-28
        • 1970-01-01
        • 1970-01-01
        • 2018-10-06
        • 1970-01-01
        • 1970-01-01
        • 2014-10-05
        • 2017-01-20
        • 2013-12-28
        相关资源
        最近更新 更多