【问题标题】:Description of columns in a DB2 tableDB2 表中列的描述
【发布时间】:2009-02-24 07:01:13
【问题描述】:

我们如何通过SQL知道表(DB2)中每一列的描述?

我的数据库是 DB2。

【问题讨论】:

    标签: sql db2


    【解决方案1】:
    select 
      tabname,
      colname,
      typename,
      length,
      scale,
      default,
      nulls,
      identity,
      generated,
      remarks,
      keyseq 
    from 
      syscat.columns 
    

    【讨论】:

      【解决方案2】:
      SELECT 
      TABLE_CAT, 
      TABLE_SCHEM, 
      TABLE_NAME, 
      COLUMN_NAME, 
      DATA_TYPE, 
      TYPE_NAME, 
      COLUMN_SIZE, 
      COLUMN_TEXT
      FROM "SYSIBM"."SQLCOLUMNS"
      WHERE TABLE_SCHEM = 'SCHEMA' 
       AND TABLE_NAME = 'TABLE'
      

      这是在 DB2 V5R4 上,不是系统表,而是SYSTEM VIEW。以防你在表格列表中寻找它而发疯。

      【讨论】:

      • 仅供参考,表和模式名称区分大小写。希望这可以为一些人节省一些时间。
      【解决方案3】:

      -- 注意:where 子句区分大小写,需要大写

      select
      t.table_schema as Library
      ,t.table_name
      ,t.table_type
      ,c.column_name
      ,c.ordinal_position
      ,c.data_type
      ,c.character_maximum_length as Length
      ,c.numeric_precision as Precision
      ,c.numeric_scale as Scale
      ,c.column_default
      ,t.is_insertable_into
      from sysibm.tables t
      join sysibm.columns c
      on t.table_schema = c.table_schema
      and t.table_name = c.table_name
      where t.table_schema = 'MYLIB'
      and t.table_name = 'MYTABLE'
      order by t.table_name, c.ordinal_position
      

      -- 获取所有元表的列表:

      select * from sysibm.tables
      where table_schema = 'SYSIBM'
      

      【讨论】:

        【解决方案4】:

        SELECT COLNAME, REMARKS FROM SYSCAT.COLUMNS WHERE TABSCHEMA = 'MYSCHEMA' AND TABNAME = 'MYTABLENAME'

        【讨论】:

          【解决方案5】:

          我在 iSeries DB2 box (v5r4) 上工作,它是一种特殊的 DB2。

          如果您使用或连接到 iSeries (AS/400),Anton 提到的链接非常好(抱歉,还不能投票!)

          Describe 不适用于 iSeries,但可以在其他平台上与 DB2 一起使用。

          【讨论】:

          • V6R1 出来了!如果您有权访问数据提供程序 DLL,它现在实现 ADO.NET 2.0(DbProviderFactory 等)。它向后兼容 V5R4。
          【解决方案6】:
          select T1.name,T1.creator from sysibm.systables T1,sysibm.syscolumns 
          T2 where T1.name=T2.tbname and T1.creator=T2.tbccreator and 
          T1.creator='CREATOR NAME' and T2.name='COLUMN NAME' 
          

          【讨论】:

            【解决方案7】:
            describe table schema.table_name ;
            

            DB2 Describe Command

            【讨论】:

              【解决方案8】:

              为我工作:

              select * from sysibm.columns
              where table_schema = 'MY_SCHEMA'
              

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 2020-06-18
                • 2012-11-06
                • 2017-06-01
                • 1970-01-01
                • 2010-12-01
                • 1970-01-01
                • 2021-11-02
                • 1970-01-01
                相关资源
                最近更新 更多