fn_listextendedproperty (Transact-SQL)

傳回資料庫物件的擴充屬性值。

主題連結圖示Transact-SQL 語法慣例

語法

fn_listextendedproperty ( 
    { default | 'property_name' | NULL } 
    , { default | 'level0_object_type' | NULL } 
    , { default | 'level0_object_name' | NULL } 
    , { default | 'level1_object_type' | NULL } 
    , { default | 'level1_object_name' | NULL } 
    , { default | 'level2_object_type' | NULL } 
    , { default | 'level2_object_name' | NULL } 
    ) 

引數

  • { default | 'property_name' | NULL}
    這是屬性名稱。property_name 是 sysname。有效的輸入是預設值、NULL 或屬性名稱。

  • {default | 'level0_object_type' | NULL}
    這是使用者類型或使用者自訂類型。level0_object_type 是 varchar(128),預設值是 NULL。有效輸入如下:ASSEMBLY、CONTRACT、EVENT NOTIFICATION、FILEGROUP、MESSAGE TYPE、PARTITION FUNCTION、PARTITION SCHEME、REMOTE SERVICE BINDING、ROUTE、SCHEMA、SERVICE、TRIGGER、TYPE、USER 和 NULL。

    重要注意事項重要事項

    在未來的 SQL Server 版本中,會移除層級 0 類型的 USER 和 TYPE。請避免在新的開發工作中使用這些功能,並規劃修改目前使用這些功能的應用程式。請改用 SCHEMA 來作為層級 0 類型,而不是使用 USER。如果是 TYPE,請使用 SCHEMA 作為層級 0 類型,並使用 TYPE 作為層級 1 類型。

  • { default | 'level0_object_name' | NULL }
    這是指定之層級 0 物件類型的名稱。level0_object_name 是 sysname,預設值是 NULL。有效的輸入是預設值、NULL 或物件名稱。

  • {default | 'level1_object_type' | NULL }
    這是層級 1 物件的類型。level1_object_type 是 varchar(128),預設值是 NULL。有效輸入如下:AGGREGATE、DEFAULT、FUNCTION、LOGICAL FILE NAME、PROCEDURE、QUEUE、RULE、SYNONYM、TABLE、TYPE、VIEW、XML SCHEMA COLLECTION 和 NULL。

    [!附註]

    預設值對應到 NULL,'default' 對應到物件類型 DEFAULT。

  • {default | 'level1_object_name' |NULL }
    這是指定之層級 1 物件類型的名稱。level1_object_name 是 sysname ,預設值是 NULL。有效的輸入是預設值、NULL 或物件名稱。

  • {default | 'level2_object_type' |NULL }
    這是層級 2 物件的類型。level2_object_type 是 varchar(128),預設值是 NULL。有效輸入有 DEFAULT、預設值 (對應到 NULL) 和 NULL。level2_object_type 的有效輸入如下:COLUMN、CONSTRAINT、EVENT NOTIFICATION、INDEX、PARAMETER、TRIGGER 和 NULL。

  • {default | 'level2_object_name' |NULL }
    這是指定之層級 2 物件類型的名稱。level2_object_name 是 sysname,預設值是 NULL。有效的輸入是預設值、NULL 或物件名稱。

傳回的資料表

這是 fn_listextendedproperty 傳回之資料表的格式。

資料行名稱

資料類型

objtype

sysname

objname

sysname

name

sysname

value

sql_variant

如果傳回的資料表是空的,可能是物件沒有擴充屬性,也可能是使用者沒有列出物件擴充屬性的權限。傳回資料庫本身的擴充屬性時,objtypeobjname 資料行將為 NULL。

備註

如果 property_name 的值是 NULL 或預設值,fn_listextendedproperty 會傳回指定物件的所有屬性。

當指定了物件類型,且對應物件名稱的值是 NULL 或預設值時,fn_listextendedproperty 會傳回指定類型之所有物件的所有擴充屬性。

物件會根據層級來區別,層級 0 是最高層級,層級 2 是最低層級。如果指定了較低層級物件 (層級1 或層級 2) 的類型和名稱,就應該提供非 NULL 或預設值的父物件類型和名稱值。否則,這個函數會傳回空的結果集。

權限

列出物件擴充屬性的權限會隨著物件類型而不同。如需權限的完整清單,請參閱<使用資料庫物件的擴充屬性>。

範例

A. 顯示資料庫的擴充屬性

下列範例會顯示資料庫物件本身所設定的所有擴充屬性。

USE AdventureWorks;
GO
SELECT objtype, objname, name, value
FROM fn_listextendedproperty(default, default, default, default, default, default, default);
GO

以下為結果集:

objtype    objname     name            value
---------  ---------   -----------     ----------------------------
NULL       NULL        MS_Description  AdventureWorks Sample OLTP Database

(1 row(s) affected)

B. 顯示資料表中所有資料行的擴充屬性

下列範例列出 ScrapReason 資料表中之資料行的擴充屬性。這包含在 Production 結構描述中。

USE AdventureWorks;
GO
SELECT objtype, objname, name, value
FROM fn_listextendedproperty (NULL, 'schema', 'Production', 'table', 'ScrapReason', 'column', default);
GO

以下為結果集:

objtype objname      name            value   
------- -----------  -------------   ------------------------
COLUMN ScrapReasonID MS_Description  Primary key for ScrapReason records.
COLUMN Name          MS_Description  Failure description.
COLUMN ModifiedDate  MS_Description  Date the record was last updated.

(3 row(s) affected)

C. 顯示結構描述中所有資料表的擴充屬性

下列範例列出 Sales 結構描述中之所有資料表的擴充屬性。

USE AdventureWorks;
GO
SELECT objtype, objname, name, value
FROM fn_listextendedproperty (NULL, 'schema', 'Sales', 'table', default, NULL, NULL);
GO