函數用途
fn_listextendedproperty 回傳資料庫物件的擴充屬性值(如欄位的 MS_Description),常用於自動化文件產生或中繼資料查詢。
語法
fn_listextendedproperty (
{ default | [@name =] 'property_name' | NULL },
{ default | [@level0type =] 'level0_object_type' | NULL },
{ default | [@level0name =] 'level0_object_name' | NULL },
{ default | [@level1type =] 'level1_object_type' | NULL },
{ default | [@level1name =] 'level1_object_name' | NULL },
{ default | [@level2type =] 'level2_object_type' | NULL },
{ default | [@level2name =] 'level2_object_name' | NULL }
)
參數說明
| 參數 | 類型 | 有效值範例 |
property_name | sysname | MS_Description, default, NULL |
level0_object_type | varchar(128) | USER, TYPE, default, NULL |
level0_object_name | sysname | 使用者名稱, default, NULL |
level1_object_type | varchar(128) | TABLE, VIEW, PROCEDURE, FUNCTION, DEFAULT, RULE |
level1_object_name | sysname | 資料表名稱, default, NULL |
level2_object_type | varchar(128) | COLUMN, PARAMETER, INDEX, CONSTRAINT, TRIGGER |
level2_object_name | sysname | 欄位名稱, default, NULL |
回傳資料表結構
| 欄位名 | 資料型別 |
objtype | sysname |
objname | sysname |
name | sysname |
value | sql_variant |
常見用法範例
-- 取得資料表所有欄位的 MS_Description
SELECT objname AS TableName, name AS ColumnName, value AS Description
FROM fn_listextendedproperty (
'MS_Description', -- property_name
'USER', 'dbo', -- level0: schema
'TABLE', 'MyTable', -- level1: table
'COLUMN', default -- level2: all columns
)
注意事項
- 系統物件不允許擴充屬性
- 若
property_name 為 NULL 或 default,回傳該物件所有屬性
- 回傳空表表示物件無擴充屬性或呼叫者無權限