使用SQL生成指定数据库的数据字典(MSSQL)
- 作者: 隔壁村老付
- 来源: 51数据库
- 2021-07-05
use dbname --指定要生成数据字典的数据库
go
select
表名=
case
when a.colorder= 1 then
d.name else ''
end, 表说明=
case
when a.colorder= 1 then
isnull( f.value, '' ) else ''
end, 字段序号= a.colorder, 字段名= a.name, 标识=
case
when columnproperty( a.id, a.name, 'isidentity' ) = 1 then
'√' else ''
end, 主键=
case
when exists (
select
1
from
sysobjects
where
xtype = 'pk'
and name in (
select name from sysindexes where indid in (
select indid from sysindexkeys where id = a.id and colid = a.colid ) )
) then
'√' else ''
end,
类型= b.name,
占用字节数= a.length,
长度= columnproperty( a.id, a.name, 'precision' ),
小数位数= isnull( columnproperty( a.id, a.name, 'scale' ), 0 ),
允许空=case
when a.isnullable= 1 then
'√' else ''
end,
默认值= isnull( e.text, '' ),
字段说明= isnull( g.[value], '' )
from
syscolumns a
left join systypes b on a.xtype= b.xusertype
inner join sysobjects d on a.id= d.id
and d.xtype= 'u'
and d.name<> 'dtproperties'
left join syscomments e on a.cdefault= e.id
left join sys.extended_properties g on a.id= g.major_id
and a.colid= g.minor_id
left join sys.extended_properties f on d.id= f.major_id
and f.minor_id = 0
--where d.name='要查询的表' --如果只查询指定表,加上此条件
order by
a.id,
a.colorder
推荐阅读
- SQLite数据库操作:原生操作,GreenDao操作讲解
- 数据库SQL实战题:获取员工其当前的薪水比其manager当前薪水还高的相关信息(教程)
- SQLSERVER查询区分大小写的写法分析
- SQL学习总结之SQL的分类介绍
- 阶梯到高级T-SQL 1级:高级T-SQL介绍交叉连接
- 高级T-SQL级别1的Stairway:使用CROSS JOIN引入高级T-SQL分析
- 什么是SQL隔离级别?四个SQL隔离级别定义介绍
- Sql递归介绍之用with实现递归查询
- SQLSERVER查询时日期格式化的实例讲解
- 数据库SQL实战:从titles表获取按照title进行分组,注意对于重复的emp_no进行忽略(题解)
热点文章
SQLite数据库操作:原生操作,GreenDao操作讲解
18
数据库SQL实战题:获取员工其当前的薪水比其manager当前薪水还高的相关信息(教程)
4
SQLSERVER查询区分大小写的写法分析
36
SQL学习总结之SQL的分类介绍
6
阶梯到高级T-SQL 1级:高级T-SQL介绍交叉连接
4
高级T-SQL级别1的Stairway:使用CROSS JOIN引入高级T-SQL分析
4
什么是SQL隔离级别?四个SQL隔离级别定义介绍
2
Sql递归介绍之用with实现递归查询
6
SQLSERVER查询时日期格式化的实例讲解
4
数据库SQL实战:从titles表获取按照title进行分组,注意对于重复的emp_no进行忽略(题解)
7
