• 分享一个获取数据字典的Sql语句


    前一阵子项目要验收文档,平时做项目时间紧没来得及将数据字典整理成一份完整的文档,当要验收的时候才整理,一点一点的整理真是太麻烦了,于是就写了一个小程序,可以从数据库中导出数据字典,可以导出如下4种格式:XML,HTML,Word,Excel,如果要使的导出的字典美观而有不需要改动的话要把每个字段的备注信息都写完整,这样导出来的文档不用做任何修改就可以提交给客户进行验收了。由于代码太乱了,暂时不好意思共享代码

    在这个工具里的一个核心的sql语句:

    Code
    -- 数据字典
    SELECT
            (case when a.colorder=1 then d.name else '' end)表名,
            a.colorder 字段序号,
            a.name 字段名,
            (case when COLUMNPROPERTY( a.id,a.name,'IsIdentity')=1 then ''else '' end) 标识,
           (case when (SELECT count(*)
            FROM sysobjects
            WHERE (name in
                    (SELECT name
                    FROM sysindexes
                    WHERE (id = a.id) AND (indid in
                             (SELECT indid
                            FROM sysindexkeys
                            WHERE (id = a.id) AND (colid in
                                      (SELECT colid
                                     FROM syscolumns
                                     WHERE (id = a.id) AND (name = a.name))))))) AND
                (xtype = 'PK'))>0 then '' else '' end) 主键,
           b.name 类型,
           a.length 占用字节数,
          COLUMNPROPERTY(a.id,a.name,'PRECISION') as 长度,
          isnull(COLUMNPROPERTY(a.id,a.name,'Scale'),0) as 小数位数,
          (case when a.isnullable=1 then ''else '' end) 允许空,
          isnull(e.text,'') 默认值,
          isnull(g.[value],'') AS 字段说明
    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.major_id
    order by a.id,a.colorder


    作者:蓝之风
    出处:http://www.cnblogs.com/vaiyanzi/
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

  • 相关阅读:
    EasyDSS前端界面在页面缩小时内置列表仍需手动刷新的优化
    【解决方案】家庭保姆犯罪案频出,EasyDSS视频监控平台如何确保家政安全?
    EasyDSS现场录视频流合成后出现视频内容部分丢失的问题排查及解决
    TSINGSEE青犀视频基于流媒体技术EasyDSS搭建酒店IPTV直播/点播平台
    EasyDSS视频直播列表页面横向滚动条和纵向滚动条不能同步的问题优化
    【解决方案】电力巡检进入智能化时代,无人机+EasyDSS开启智能巡检新模式
    EasyDSS新内核版本测试删除录像文件后存在残留问题调整优化
    IT常识
    Java面试题+算法案例
    数据库理论概述
  • 原文地址:https://www.cnblogs.com/vaiyanzi/p/1510393.html
Copyright © 2020-2023  润新知