【问题标题】:How to get table name from column in DB2?如何从 DB2 的列中获取表名?
【发布时间】:2011-11-08 14:29:38
【问题描述】:

我需要 db2 sql 查询从列名中查找表/表。我有列名,但没有该列所属的表名。

【问题讨论】:

  • 多个表可能有一个具有该名称的列。特别是如果列名是例如“ID”或“LAST_UPDATED”
  • @crowne - 请检查问题我已经提到过表格。

标签: sql db2 tablename columnname


【解决方案1】:
select TBNAME
    from sysibm.syscolumns
    where NAME = '<column name>'

【讨论】:

    【解决方案2】:
    SELECT tabname
        FROM syscat.columns
        WHERE colname = 'mycol'
    

    【讨论】:

    • 对象名称在 DB2 中默认全部大写,但如果有人故意使用大小写混合的名称,请考虑使用 WHERE UPPER(colname) = UPPER('somecolumnname')
    • 出于性能目的,您甚至应该考虑不在条件的右侧部分使用 UPPER WHERE UPPER(colname) = "SOMECOLUMNNAME
    【解决方案3】:

    对于 DB2/AS400 用户:

    SELECT TABLE_SCHEMA, TABLE_NAME 
        FROM QSYS2.SYSCOLUMNS 
        WHERE upper(column_name) = upper('[column_name]')
    

    【讨论】:

      【解决方案4】:

      如果您使用的是 Visual Studio Server Explorer,我发现使用以下方法效果最好:

      SELECT       TABNAME
      FROM         SYSCAT.COLUMNS
      WHERE        COLNAME = 'NASR_DESC'
      

      Visual Studio 仍然对其进行格式化,但 Visual Studio 插入的格式仍然有效。

      希望这有助于有人使用 Visual Studio Server Explorer 在其 IBM DB2 数据库中搜索已知列名。

      【讨论】:

        猜你喜欢
        • 2021-10-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-10-01
        • 1970-01-01
        • 2011-03-07
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多