相信很多小伙伴都對【數據字典】很頭疼。 小編剛入職的時候,老大丟一個項目過來,就一個設計文檔,數據字典木有,欄位說明木有, 全部都需要靠“聯繫上下文”來猜。所以小伙伴門一定要養成說明欄位的習慣哦。 說明欄位後我們無需特意建立數據字典,直接建立一個存儲過程就可以查詢欄位意義了。 存儲過程建立如下,小伙 ...
相信很多小伙伴都對【數據字典】很頭疼。
小編剛入職的時候,老大丟一個項目過來,就一個設計文檔,數據字典木有,欄位說明木有,
全部都需要靠“聯繫上下文”來猜。所以小伙伴門一定要養成說明欄位的習慣哦。
說明欄位後我們無需特意建立數據字典,直接建立一個存儲過程就可以查詢欄位意義了。
存儲過程建立如下,小伙伴們直接拷貝執行就行了。
/****** 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' --指定表
效果如下:
這樣我們就無需建立數據字典,只需要寫好字典說明即可。
對於別人寫好了說明,沒有數據字典的小伙伴們也可以直接進行欄位意義查看哦。
當然,做為一個合格的程式員,設計文檔和數據字典是必須的,我們要為後來者節省時間,更容易理解數據結構。