博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SQLServer存储过程自制数据字典
阅读量:4671 次
发布时间:2019-06-09

本文共 2751 字,大约阅读时间需要 9 分钟。

相信很多小伙伴都对【数据字典】很头疼。

小编刚入职的时候,老大丢一个项目过来,就一个设计文档,数据字典木有,字段说明木有,

全部都需要靠“联系上下文”来猜。所以小伙伴门一定要养成说明字段的习惯哦。

说明字段后我们无需特意建立数据字典,直接建立一个存储过程就可以查询字段意义了。

存储过程建立如下,小伙伴们直接拷贝执行就行了。

/****** Object:  StoredProcedure [dbo].[sp_tableDict]    Script Date: 2019/1/14 10:49:40 ******/SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOCREATE PROCEDURE [dbo].[sp_tableDict](    @tableName AS VARCHAR(100))    --@parameter_name AS scalar_data_type ( = default_value ), ...-- WITH ENCRYPTION, RECOMPILE, EXECUTE AS CALLER|SELF|OWNER| 'user_name'ASSELECT  表名 = 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 = 0WHERE   d.name = @tableNameORDER BY a.id ,        a.colorder

我们新建表字段的时候顺带说明当前字段是什么意思,如下图

 

字典说明写好后我们调用之前写好的存储过程,

--调用存储过程EXEC dbo.sp_tableDict @tableName = 'tblApplicationAcceptance' --指定表

效果如下:

 

 

 

这样我们就无需建立数据字典,只需要写好字典说明即可。

对于别人写好了说明,没有数据字典的小伙伴们也可以直接进行字段意义查看哦。

当然,做为一个合格的程序员,设计文档和数据字典是必须的,我们要为后来者节省时间,更容易理解数据结构。

 

转载于:https://www.cnblogs.com/xiongze520/p/10265821.html

你可能感兴趣的文章
2017IEC计算机第二次作业
查看>>
Go - map
查看>>
python format 时间格式
查看>>
CCF CSP 201703-1 分蛋糕
查看>>
疯狂的Web应用开源项目
查看>>
分析及解决SQLServer死锁问题
查看>>
WebService 简单安全验证
查看>>
1.Spring框架入门
查看>>
三、Springmvc之Controller层方法返回值
查看>>
构建linux内核源码树
查看>>
常用的系统架构 web服务器之iis,apache,tomcat三者之间的比较
查看>>
508. Most Frequent Subtree Sum (Medium)
查看>>
PADS无模命令总结
查看>>
潭州课堂25班:Ph201805201 爬虫高级 第十二 课 Scrapy-redis分布 项目实战 (课堂笔记)...
查看>>
潭州课堂25班:Ph201805201 django 项目 第二课 git 版本控制 (课堂笔记)
查看>>
PKU 1012
查看>>
【nodejs】让nodejs像后端mvc框架(asp.net mvc)一orm篇【如EF般丝滑】typeorm介绍(8/8)...
查看>>
【nodejs】让nodejs像后端mvc框架(asp.net mvc)一样处理请求--请求处理函数装饰器注册篇(5/8)【controller+action】...
查看>>
[转]Java8 Lambda表达式教程
查看>>
[MySQL 5.6] MySQL 5.6 group commit 性能测试及内部实现流程
查看>>