看你知道不知道之-制作数据字典

本文介绍了一种简便的方法来创建SQLServer的数据字典。通过使用SQL语句,可以有效地生成包含表名、字段名、字段说明等信息的数据字典,并提供了具体的SQL脚本。

这部分内容和VB6的关系不大,但是确是困扰我的一个问题。

这几天在整理数据字典,以前的办法是用Excel来制作,一个一个的填写特别麻烦,制作到好说,关键就是一旦结果变更了,改来改去的麻烦死了。

后来改用数据库关系图来制作打印出来,看着还是那么回事情,但是表格的排序和查找太麻烦了,到底有没有好的办法呢?

当然有了,实际上在SqlServer中利用Sql语句就可以实现数据字典,但是就怕不知道。

代码如下:

None.gif -- 数据库字典生成脚本
None.gif

None.gif
USE  DBNAME
None.gif
None.gif
SELECT  
None.gif
None.gif表名 
=   CASE   WHEN  a.colorder = 1   THEN  d.name  ELSE   ''   END
None.gif
None.gif
-- 字段序号=a.colorder, 
None.gif

None.gif字段名
= a.name, 
None.gif
None.gif字段说明
= ISNULL (g. [ value ] , '' ),
None.gif
None.gif
-- 标识=CASE WHEN COLUMNPROPERTY(a.id,a.name,'IsIdentity')=1 THEN '√' ELSE '' END, 
None.gif

None.gif主键
= CASE   WHEN   EXISTS  (
None.gif
None.gif            
SELECT   1   FROM  sysobjects  WHERE  xtype = ' PK '   AND  name  in  (
None.gif            
None.gif            
SELECT  name  FROM  sysindexes  WHERE  indid  in (
None.gif
None.gif            
SELECT  indid  FROM  sysindexkeys  WHERE  id  =  a.id  AND  colid = a.colid  ))) 
None.gif
None.gif    
THEN   ' '   ELSE   ''   END
None.gif
None.gif类型
= b.name, 
None.gif 
None.gif
-- 占用字节数=a.length, 
None.gif

None.gif长度
= COLUMNPROPERTY (a.id,a.name, ' PRECISION ' ), 
None.gif
None.gif小数位数
= isnull ( COLUMNPROPERTY (a.id,a.name, ' Scale ' ), 0 ), 
None.gif
None.gif允许空
= CASE   WHEN  a.isnullable = 1   THEN   ' '   ELSE   ''   END
None.gif
None.gif默认值
= ISNULL (e. text , '' )
None.gif
None.gif
FROM  syscolumns a  LEFT   JOIN  systypes b  on  a.xtype  =  b.xusertype  INNER   JOIN  sysobjects d  ON  a.id  =  d.id  
None.gif
None.gif     
AND  d.xtype = ' U '   AND   d.name <> ' dtproperties '
None.gif 
None.gif     
LEFT   JOIN  syscomments e  ON  a.cdefault = e.id  LEFT   JOIN  sysproperties g  on  a.id = g.id 
None.gif
None.gif     
AND  a.colid = g.smallid  
None.gif
None.gif     
ORDER   BY  d.name,a.id,a.colorder 
None.gif
None.gif
GO

呵呵,一切搞定。

相关资料:
如何获取MSSQLServer,Oracel,Access中的数据字典信息 # 用Sql语句生成Sqlserver数据字典 # 使用SQL语句查询SQLServer字段的描述信息 #
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值