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。重要提示 作为级别 0 类型的 USER 和 TYPE 将在 SQL Server 的未来版本中删除。请避免在新的开发工作中使用这些功能,并考虑修改当前使用这些功能的应用程序。改用 SCHEMA 代替 USER 作为级别 0 类型。对于 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