首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

秒級生成 SQL Server 數據字典:以擴展屬性為核心的自動化實戰

     編輯:關於SqlServer

痛點:手工維護文檔佔據過多 DBA 時間

頻繁的結構變更讓文檔更新成為負擔。SQL Server 2005+ 內建的擴展屬性機制,配合系統檢視與動態 SQL,能在秒級為整個資料庫生成最新的 HTML 格式數據字典。

核心步驟:兩大腳本組合

1. 範例:為資料表與欄位新增擴展屬性

以 AdventureWorks 為例,使用 sys.sp_addextendedproperty:

USE [AdventureWorks];
GO
-- 表級描述
EXEC sys.sp_addextendedproperty
  @name = N'MS_Description',
  @value = N'客戶、員工、供應商的街道地址資訊。',
  @level0type = N'SCHEMA', @level0name = N'Person',
  @level1type = N'TABLE',  @level1name = N'Address';
GO
-- 欄位級描述
EXEC sys.sp_addextendedproperty
  @name = N'MS_Description',
  @value = N'第一行街道地址。',
  @level0type = N'SCHEMA', @level0name = N'Person',
  @level1type = N'TABLE',  @level1name = N'Address',
  @level2type = N'COLUMN', @level2name = N'AddressLine1';
GO
SSMS 中查看擴展屬性
在 SSMS 物件總管右鍵「屬性」→「擴展屬性」即可視覺化編輯

2. 一鍵生成 HTML 數據字典的 T-SQL 腳本

核心邏輯:查詢 sys.extended_properties 結合 INFORMATION_SCHEMA,動態拼裝 HTML。關鍵設定:

-- SSMS 選項:工具 → 選項 → 查詢結果 → SQL Server → 文字結果
-- 取消勾選「在結果集中包含資料行標題」,避免每欄重複表頭干擾 HTML 結構
SSMS 文字結果設定
設定文字結果不含標題,輸出純淨 HTML 片段

進階自動化建議

  1. 排程作業:建立 SQL Agent Job,每日/每周執行生成腳本,輸出至共享資料夾或內部入口網站。
  2. 納入 CI/CD:部署腳本階段強制檢查核心物件(PK、FK、關鍵欄位)是否具備 MS_Description,缺失則阻擋部署。
  3. 擴充屬性標準化:定義屬性名稱字典(如 BusinessMeaning, DataSource, ValidationRule),超越單一描述欄位。
  4. 版本比對:保留歷史 HTML 快照,提供結構變更對比報表。

將擴展屬性視為「活的元數據」,配合自動化腳本與治理流程,讓數據字典從「負擔」轉型為「資產」。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved