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。

    重要说明重要提示

    作为级别 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

如果返回的表为空,可能对象没有扩展属性或用户不具有列出对象扩展属性的权限。当返回数据库本身的扩展属性时,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