返回數(shù)據(jù)庫對象的擴展屬性值。
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 }
)
{default|[@name =] 'property_name'|NULL}
是屬性的名稱。property_name 為 sysname 類型。有效的輸入為 default、NULL 或屬性名。
{default|[@level0type =] 'level0_object_type'|NULL}
用戶或用戶定義類型。level0_object_type 的數(shù)據(jù)類型為 varchar(128),其默認值為 NULL。有效的輸入是 USER、TYPE、default 和 NULL。
{default|[@level0name =] 'level0_object_name'|NULL}
指定的 0 級對象類型的名稱。level0_object_name 的數(shù)據(jù)類型為 sysname,其默認值為 NULL。有效的輸入為 default、NULL 或對象名。
{default|[@level1type =] 'level1_object_type'|NULL}
1 級對象的類型。level1_object_type 的數(shù)據(jù)類型為 varchar(128),其默認值為 NULL。有效的輸入為 TABLE、VIEW、PROCEDURE、FUNCTION、DEFAULT、RULE、default 和 NULL。
說明 默認映射 NULL,而"default"映射對象類型 DEFAULT。
{default|[@level1name =] 'level1_object_name'|NULL}
指定的 1 級對象類型的名稱。level1_object_name 的數(shù)據(jù)類型為 sysname,其默認值為 NULL。有效的輸入為 default、NULL 或對象名。
{default|[@level2type =] 'level2_object_type'|NULL}
2 級對象的類型。level2_object_type 的數(shù)據(jù)類型為 varchar(128),其默認值為 NULL。有效的輸入為 COLUMN、PARAMETER、INDEX、CONSTRAINT、TRIGGER、DEFAULT、default(映射 NULL)和 NULL。
{default|[@level2name =] 'level2_object_name'|NULL}
指定的 2 級對象類型的名稱。level2_object_name 的數(shù)據(jù)類型為 sysname,其默認值為 NULL。有效的輸入為 default、NULL 或對象名。
下面是 fn_listextendedproperty 返回的表的格式。
列名 | 數(shù)據(jù)類型 |
---|---|
objtype | sysname |
objname | sysname |
name | sysname |
value | sql_variant |
如果返回的表為空,可能對象沒有擴展屬性或用戶沒有列出對象擴展屬性的權限。
系統(tǒng)對象不允許有擴展屬性。
如果 property_name 的值為 NULL 或 default,fn_listextendedproperty 返回對象的所有屬性。
如果指定了對象類型且相應的對象名的值為 NULL 或 default,則 fn_listextendedproperty 返回指定類型的所有對象的所有擴展屬性。
對象是按級別區(qū)分的,0 級為最高,2 級為最低。如果指定了較低級別的對象(1 或 2 級)類型和名稱,則父對象類型和名稱的值不能為 NULL 或 default。否則,函數(shù)將返回錯誤。
用于列出某些級別對象類型的擴展屬性的權限有所不同。
此示例列出數(shù)據(jù)庫的所有擴展屬性。
SELECT *
FROM ::fn_listextendedproperty(NULL, NULL, NULL, NULL, NULL, NULL, NULL)
-或-
SELECT *
FROM ::fn_listextendedproperty(default, default, default, default, default, default, default)
此示例列出表"T1"中所有列的所有擴展屬性。
CREATE table T1 (id int , name char (20))
EXEC sp_addextendedproperty 'caption', 'Employee ID', 'user', dbo, 'table', 'T1', 'column', id
EXEC sp_addextendedproperty 'caption', 'Employee Name', 'user', dbo, 'table', 'T1', 'column', name
SELECT *
FROM ::fn_listextendedproperty (NULL, 'user', 'dbo', 'table', 'T1', 'column', default)
下面是結果集:
objtype | objname | name | value |
---|---|---|---|
COLUMN | id | caption | Employee ID |
COLUMN | name | caption | Employee Name |