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

SQL Server 擴展屬性實現 Access 風格列註釋:sp_addextendedproperty 與 fn_listextendedproperty 實戰

     編輯:關於SqlServer

需求背景

Access 設計視圖自帶「列註釋」欄,方便查看字段含義。SQL Server 建表無此功能,但提供擴展屬性機制,可將註釋掛載到列級對象,再通過系統函數讀取作為結果集,供前端動態顯示數據字典。

添加列級擴展屬性

-- 為表 ClientInfo 的列 CRid 添加註釋
EXEC sp_addextendedproperty
    'CRid', '表示ID',
    'user', dbo, 'table', 'ClientInfo', 'column', 'CRid'
GO

-- 為列 Rname 添加註釋
EXEC sp_addextendedproperty
    '人名', '顯示客戶姓名',
    'user', dbo, 'table', 'ClientInfo', 'column', 'Rname'
GO

也可在企業管理器/查詢分析器右鍵列 →「擴展屬性」圖形化添加。

讀取所有列註釋

SELECT name, value
FROM ::fn_listextendedproperty
    (DEFAULT, 'user', 'dbo', 'table', 'ClientInfo', 'column', DEFAULT)
GO

結果:

name    value
------------------------------
CRid    表示ID
人名     顯示客戶姓名

fn_listextendedproperty 參數詳解

系統多表值函數,調用需前綴 ::。7 個參數對應對象層級:

  1. 屬性名稱(DEFAULT/NULL = 所有)
  2. 用戶級(user)
  3. 用戶名(dbo)
  4. 對象類型(table/view/procedure...)
  5. 對象名(ClientInfo)
  6. 子對象類型(column/index/parameter...)
  7. 子對象名(DEFAULT = 所有)

參考 BOL 獲取完整對象命名規則。

應用場景

  • 動態生成數據字典頁面
  • 代碼生成器讀取註釋自動生成實體類屬性註釋
  • 報表工具顯示友好字段名
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved