• [转帖]制作数据字典


     

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

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

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

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

    代码如下:

    --数据库字典生成脚本

    USE DBNAME

    SELECT 

    表名 
    = CASE WHEN a.colorder=1 THEN d.name ELSE '' END

    --字段序号=a.colorder, 

    字段名
    =a.name, 

    字段说明
    =ISNULL(g.[value],''),

    --标识=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,'')

    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 sysproperties g on a.id=g.id 

         
    AND a.colid=g.smallid  

         
    ORDER BY d.name,a.id,a.colorder 

    GO


    呵呵,一切搞定。


    来源于:http://duiker.cnblogs.com/archive/2006/02/10/328557.html

  • 相关阅读:
    在线程中使用OpenFileDialog
    Log4net附加
    SQL表间列根据条件复制(赋值)
    DataGridView使用
    Latex使用总结及备忘
    Windows获取文件状态
    TabControl取消首次定位焦点
    C#跨线程调用
    电子词典的查寻程序,发送和接收应答程序
    电子词典的相关子函数db.c程序
  • 原文地址:https://www.cnblogs.com/eugenewu0808/p/CreateDictionary.html
Copyright © 2020-2023  润新知