关于SQL数据库查询所有表及字段说明语句
2015-05-20 09:43
260 查看
最近在倒腾一个框架是要将数据库所有表及字段导入到数据库表中,然后就自动生成代码,所以研究了一下查询当前库所有表及字段说明语句:
具体SQL语句如下:
--查询数据库所有表
select
o.name '表名',
f.value '说明'
from
sys.sysobjects o
left join sys.extended_properties f on
f.major_id=o.id and f.minor_id=0 and f.class=1
where o.type in ('U')
order by o.name asc
--查询数据库所有表字段
select
o.name '表名',
c.name '列名',
case when c.system_type_id in (165, 167,231) and c.max_length = -1 then t.name + '(Max)' else t.name end '字段类型',
case (c.max_length) when -1 then 0 else case when c.system_type_id in (99, 231, 239) then (c.max_length/2) else(c.max_length) end end as '长度',
case(c.is_nullable) when 1 then 'NULL' else'NOT NULL' end '是否为空',
(select convert(varchar(8000), value) from sys.extended_properties as ex where ex.major_id = c.object_id and ex.minor_id = c.column_id) '说明'
from
sys.columns c
join sys.objects o on(o.object_id = c.object_id)
join sys.types t on (t.user_type_id = c.system_type_id)
where
o.type in ('U')
order by o.name asc
效果图:
具体SQL语句如下:
--查询数据库所有表
select
o.name '表名',
f.value '说明'
from
sys.sysobjects o
left join sys.extended_properties f on
f.major_id=o.id and f.minor_id=0 and f.class=1
where o.type in ('U')
order by o.name asc
--查询数据库所有表字段
select
o.name '表名',
c.name '列名',
case when c.system_type_id in (165, 167,231) and c.max_length = -1 then t.name + '(Max)' else t.name end '字段类型',
case (c.max_length) when -1 then 0 else case when c.system_type_id in (99, 231, 239) then (c.max_length/2) else(c.max_length) end end as '长度',
case(c.is_nullable) when 1 then 'NULL' else'NOT NULL' end '是否为空',
(select convert(varchar(8000), value) from sys.extended_properties as ex where ex.major_id = c.object_id and ex.minor_id = c.column_id) '说明'
from
sys.columns c
join sys.objects o on(o.object_id = c.object_id)
join sys.types t on (t.user_type_id = c.system_type_id)
where
o.type in ('U')
order by o.name asc
效果图:
相关文章推荐
- sql 关于文档的表中所有列、列的类型、列的说明、列字段等查询,表外键的查询
- 查询数据库所有(某个)表中字段名,数据类型,说明等
- 在oracle中查询已知表名的表中所有字段名,每个字段是否是主键,是否是外键,是否为空的sql语句
- 关于Oracle与SqlServer中获取所有字段、主键、外键的sql语句
- SQL语句查询数据库所有表和所有字段的详细信息(包括表描述和字段描述)
- 查询当前数据库中所有有默认值的字段,并生成添加默认值的SQL语句
- 查询一个表中所有id字段在另一个表中对应值的SQL语句怎么写?
- 从数据库中查询所有表及所有字段的SQL语句
- 关于Oracle与SqlServer中获取所有字段、主键、外键的sql语句
- Informix数据表结构分析资料整理之字段类型说明和查询SQL语句
- mysql使用sql语句查询数据库所有表注释已经表字段注释
- 利用SQL语句查询出指定表的所有扩展属性(列说明)
- Informix数据表结构分析资料整理之字段类型说明和查询SQL语句
- sql查询数据库里所有表名,字段名的语句
- 返回数据库内所有表的字段详细说明的SQL语句 (转)
- 使用SQL语句查询某表中所有的主键、唯一索引以及这些主键、索引所包含的字段(转)
- sql server查询所有表名、字段名、类型、长度 和 存储过程、视图 的创建语句
- Informix数据表结构分析资料整理之字段类型说明和查询SQL语句
- —查询数据库中所有的表名字段名说明 详细信息
- SQL Server中查询所有数据库、所有表、字段的Sql语句