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

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

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

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

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

/****** Object:  StoredProcedure [dbo].[sp_tableDict]    Script Date: 2019/1/14 10:49:40 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[sp_tableDict]
(
@tableName AS VARCHAR()
)
--@parameter_name AS scalar_data_type ( = default_value ), ...
-- WITH ENCRYPTION, RECOMPILE, EXECUTE AS CALLER|SELF|OWNER| 'user_name'
AS
SELECT 表名 = CASE WHEN a.colorder = THEN d.name
ELSE ''
END ,
表说明 = CASE WHEN a.colorder = THEN ISNULL(f.value, '')
ELSE ''
END ,
字段序号 = a.colorder ,
字段名 = a.name ,
标识 = CASE WHEN COLUMNPROPERTY(a.id, a.name, 'IsIdentity') = THEN '√'
ELSE ''
END ,
主键 = CASE WHEN EXISTS ( SELECT
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'), ) ,
允许空 = CASE WHEN a.isnullable = 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 =
WHERE d.name = @tableName
ORDER BY a.id ,
a.colorder

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

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

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

效果如下:

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

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

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

最新文章

  1. js ajax php分页组件
  2. [Java编程思想-学习笔记]第4章 控制执行流程
  3. linq join的lambda写法
  4. 使用git
  5. PAT 1015. 德才论 (25) JAVA
  6. Leetcode 257. Binary Tree Paths
  7. 极客DIY:如何用Siri与树莓派“交互”
  8. UISearchBar
  9. Linux连续执行多条命令
  10. Vim自动补全神器:YouCompleteMe
  11. Mysql笔记【1】-数据库的基本操作(创建/删除)
  12. NET笔记——IOC详解和Unity基础使用介绍
  13. asp.net微信开发第三篇----自定义会话管理
  14. Android系统移植与调试之-------&gt;如何修改Android设备的开机第一阶段Logo
  15. poj1182(并查集)
  16. 山东省第八届ACM省赛游记
  17. 201521044091 《Java程序设计》第3周学习总结
  18. c++中sizeof的理解
  19. Linux随笔---tar命令
  20. Myeclipse反编译插件(jad)的安装和使用

热门文章

  1. 异常--java.text.ParseException: Unparseable date
  2. py文件转换为exe文件
  3. Android 增强版百分比布局库 为了适配而扩展
  4. Python3.6下scrapy框架的安装
  5. 关于python中phantomjs无法访问网页的处理
  6. IE下获取XPATH小工具,支持32/64位
  7. 一次完整的HTTP网络请求过程详解
  8. 在Mybatis-spring上基于注解的数据源实现方案
  9. etcd_selector.go
  10. [POI2007]洪水pow bfs