fn_listextendedproperty (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 |
如果傳回的資料表是空的,可能是物件沒有擴充屬性,也可能是使用者沒有列出物件擴充屬性的權限。傳回資料庫本身的擴充屬性時,objtype 和 objname 資料行將為 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