-
SQLServer存储过程自制数据字典
相信很多小伙伴都对【数据字典】很头疼。
小编刚入职的时候,老大丢一个项目过来,就一个设计文档,数据字典木有,字段说明木有,
全部都需要靠“联系上下文”来猜。所以小伙伴门一定要养成说明字段的习惯哦。
说明字段后我们无需特意建立数据字典,直接建立一个存储过程就可以查询字段意义了。
存储过程建立如下,小伙伴们直接拷贝执行就行了。
/****** 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(100) ) --@parameter_name AS scalar_data_type ( = default_value ), ... -- WITH ENCRYPTION, RECOMPILE, EXECUTE AS CALLER|SELF|OWNER| 'user_name' AS SELECT 表名 = 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 = 0 WHERE d.name = @tableName ORDER BY a.id , a.colorder
我们新建表字段的时候顺带说明当前字段是什么意思,如下图
字典说明写好后我们调用之前写好的存储过程,
--调用存储过程 EXEC dbo.sp_tableDict @tableName = 'tblApplicationAcceptance' --指定表
效果如下:
这样我们就无需建立数据字典,只需要写好字典说明即可。
对于别人写好了说明,没有数据字典的小伙伴们也可以直接进行字段意义查看哦。
当然,做为一个合格的程序员,设计文档和数据字典是必须的,我们要为后来者节省时间,更容易理解数据结构。
作者:熊泽-学习中的苦与乐 出处:https://www.cnblogs.com/xiongze520/p/10265821.html |
最新更新
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
Python初学者友好丨详解参数传递类型
如何有效管理爬虫流量?
SQL SERVER中递归
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
这是目前我见过最好的跨域解决方案!
减少回流与重绘
减少回流与重绘
如何使用KrpanoToolJS在浏览器切图
performance.now() 与 Date.now() 对比
一款纯 JS 实现的轻量化图片编辑器
关于开发 VS Code 插件遇到的 workbench.scm.
前端设计模式——观察者模式
前端设计模式——中介者模式
创建型-原型模式