From a Sybase Database, how I can get table description ( field names and types)?

前端 未结 12 878
刺人心
刺人心 2020-12-07 11:46

I have access to command line isql and I like to get Meta-Data of all the tables of a given database, possibly in a formatted file. How I can achieve that?

Thanks.

12条回答
  •  不知归路
    2020-12-07 12:14

         SELECT
    DB_NAME() TABLE_CATALOG,
    NULL TABLE_SCHEMA,
    so.name TABLE_NAME,
    sc.name COLUMN_NAME,
    sc.colid ORDINAL_POSITION,
    NULL COLUMN_DEFAULT,
    CASE WHEN st.allownulls=1 THEN 'YES'
     ELSE 'NO'
    END IS_NULLABLE,
    st.name DATA_TYPE,
    CASE WHEN st.name like '%char%' THEN st.length
    END CHARACTER_MAXIMUM_LENGTH,
    CASE WHEN st.name like '%char%' THEN st.length
    END*2 CHARACTER_OCTET_LENGTH,
    CASE WHEN st.name in ('numeric','int') THEN st.length
    END NUMERIC_MAXIMUM_LENGTH,
    CASE WHEN st.name in ('numeric','int') THEN st.prec
    END NUMERIC_PRECISION,
    NULL NUMERIC_PRECISION_RADIX,
    CASE WHEN st.name in ('numeric','int') THEN st.scale
    END NUMERIC_SCALE,
    CASE WHEN st.name in ('datetime') THEN st.prec
    END DATETIME_PRECISION,
    NULL CHARACTER_SET_CATALOG,
    NULL CHARACTER_SET_SCHEMA,
    NULL COLLATION_CATALOG,
    NULL COLLATION_SCHEMA,
    NULL DOMAIN_CATALOG,
    NULL DOMAIN_SCHEMA,
    NULL DOMAIN_NAME
    FROM 
    sysobjects so
    INNER JOIN 
    syscolumns sc
    ON sc.id = so.id
    inner join systypes st on st.usertype = sc.usertype 
    WHERE so.name = 'TableName'
    

提交回复
热议问题