頻繁的結構變更讓文檔更新成為負擔。SQL Server 2005+ 內建的擴展屬性機制,配合系統檢視與動態 SQL,能在秒級為整個資料庫生成最新的 HTML 格式數據字典。
以 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
核心邏輯:查詢 sys.extended_properties 結合 INFORMATION_SCHEMA,動態拼裝 HTML。關鍵設定:
-- SSMS 選項:工具 → 選項 → 查詢結果 → SQL Server → 文字結果
-- 取消勾選「在結果集中包含資料行標題」,避免每欄重複表頭干擾 HTML 結構
MS_Description,缺失則阻擋部署。BusinessMeaning, DataSource, ValidationRule),超越單一描述欄位。將擴展屬性視為「活的元數據」,配合自動化腳本與治理流程,讓數據字典從「負擔」轉型為「資產」。