加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

SqlServer2008/2005生成数据字典的方法

发布时间:2020-12-12 13:57:06 所属栏目:MsSql教程 来源:网络整理
导读:? ?今天在写需求分析文档的过程中,其中一项是数据字典,由于对数据字典不是很了解,就在网上查了一下 ? ? 中文名称:数据字典 ? ?英文名称: data dictionary ? ?定义:数据库中所有对象及其关系的信息集合。 ? ?应用学科:地理学(一级学科);地理信息系

? ?今天在写需求分析文档的过程中,其中一项是数据字典,由于对数据字典不是很了解,就在网上查了一下

? ?中文名称:数据字典

? ?英文名称:data dictionary

? ?定义:数据库中所有对象及其关系的信息集合。

? ?应用学科:地理学(一级学科);地理信息系统(二级学科)

? ?详细介绍可以看百科中的介绍 ? :http://baike.baidu.com/view/70173.htm

? ?我需要写数据字典,于是又查了一下,数据字典该怎么写? 写出来的模式是什么样的? ?大概截了一个图如下:

将数据字典写成这个样子就可以了,我快速的就创建了一个Excel ,想照着数据库自己写吧,着手的时候感觉很麻烦,那么多字段,应该还会有其他办法吧,例如用SQL直接生成。 ?百度上移搜索,还真有这样的方法。下面就是我利用SQL2008生成数据字典的全过程 :

? ? 我自己对数据字典的理解,似乎就像我们平时用的字典一样吧,例如汉语字典,成语字典,英语字典等等,我们想要知道什么就去字典里 查。而数据字典也是这样,我要知道某个数据库中都包含哪些表啊,这些表中都包含什么字段啊,字段的属性,以及一些信息都可以通过数据字典查到。通过查找了一些资料,现将生成数据字典的步骤总结如下(在此以数据库中的系统数据流master为例子来生成数据字典):

?

1.首先,要确定你所查找的数据库是哪个,我就以系统数据库为例了


右击数据库(此处为你想生成数据字典的数据库名称),然后在弹出菜单中选择新建查询?

?2.其次,将生成数据字典的语句写在新建查询中,这些查询的SQL语句用SQL20052008都可以使用,无需改动什么,只需要直接将这些代码敲好了就可以?

语句如下:?

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,'PRECISION'),小数位数=isnull(COLUMNPROPERTY(a.id,'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_propertiesg on a.id=g.major_id and a.colid=g.minor_id left join sys.extended_propertiesf on d.id=f.major_id and f.minor_id =0 --where d.name='要查询的表' --如果只查询指定表,加上此条件 order by a.id,a.colorder 


?

3.这些语句完成后,执行这些语句就可以查到相应的数据字典了例如

?



通过一些SQL语句,把我以为很繁琐的工作,这么接单的就解决了,感觉不错,因此也来分享一下。(遗憾的是这些SQL语句是我查找出来的,而不是自己写出来的,知识无穷,需要学的还真多! 争取自己写出来!)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读