达梦8,sql取得所有表,所有字段,主键,自增

1.获得某个用户下,所有表名,表注释,创建时间,修改时间

select a.object_name as table_name,b.comment$ as table_comment,a.created as create_time,a.last_ddl_time as update_time
from dba_objects a
left join SYSTABLECOMMENTS b on b.tvname = a.object_name
where a.object_type = 'TABLE' and a.owner = 'xxx' 
and a.object_name not like 'SREF_CON%'
and a.object_name not like 'GEN_%'

 表的注释信息是在SYSTABLECOMMENTS 

a.object_name not like 'SREF_CON%',是排除了SREF_CON开头的表名。

and a.object_name not like 'GEN_%',是排除了GEN_开头的表名。

2.查询指定表名的所有列信息,是否为必填的,是否是主键,列注释,是否自增,列的数据类型

select a.column_name,
(case when (a.nullable = 'N') then '1' else null end) as is_required,
(case when b.column_name != 'NULL'  then '1' else '0' end) as is_pk,
a.column_id as sort,
c.comment$ as column_comment,
(case when d.info2 = 1 then '1' else '0' end) as is_increment,
a.data_type as column_type
from all_tab_columns a
left join (select top 1 * from user_ind_columns where table_name = 'xxx') b on b.column_name = a.column_name
left join SYSCOLUMNCOMMENTS c on c.colname = a.column_name and c.tvname = a.table_name
left join syscolumns d on d.name = a.column_name  and d.INFO2 & 1=1
where a.owner='DDY' and a.Table_Name='xxx'
order by a.column_id

 all_tab_columns表是包含表名、列名、列的数据类型(data_type),排序(column_id)。

user_ind_columns表是包含主键信息,表名、列名、主键名

SYSCOLUMNCOMMENTS表是列的注释信息。

syscolumns是包括列的自增信息info2就是是否自增

你可能感兴趣的:(sql,达梦8,sql,元数据,表,列)