sys.fn_listextendedproperty (Transact-SQL)
适用于:SQL Server
Azure SQL 数据库 Azure 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 的未来版本中将删除 USER 和 TYPE 作为 level-0 类型。 请避免在新的开发工作中使用这些功能,并考虑修改当前使用这些功能的应用程序。 改用 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
- 逻辑文件名
- 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
- default (映射到 NULL)
- NULL。 level2_object_type的有效输入为:
- COLUMN
- CONSTRAINT
- EVENT NOTIFICATION
- INDEX
- 参数
- 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 或默认值以外的给定值。 否则,此函数返回空结果集。
objname 固定为Latin1_General_CI_AI。 但是,可以通过比较替代排序规则来解决此问题。
SELECT o.[object_id] AS 'table_id', o.[name] 'table_name',
0 AS 'column_order', NULL AS 'column_name', NULL AS 'column_datatype',
NULL AS 'column_length', Cast(e.value AS varchar(500)) AS 'column_description'
FROM AdventureWorks.sys.objects AS o
LEFT JOIN sys.fn_listextendedproperty(N'MS_Description', N'user',N'HumanResources',N'table', N'Employee', null, default) AS e
ON o.name = e.objname COLLATE SQL_Latin1_General_CP1_CI_AS
WHERE o.name = 'Employee';
权限
列出对象的扩展属性的权限随对象类型的不同而有所不同。
示例
A. 显示数据库的扩展属性
以下示例显示为数据库对象本身设置的所有扩展属性。
USE AdventureWorks2022;
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 AdventureWorks2008 Sample OLTP Database
(1 row(s) affected)
B. 显示表中所有列的扩展属性
以下示例列出了表中列 ScrapReason
的扩展属性。 这包含在架构 Production
中。
USE AdventureWorks2022;
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 AdventureWorks2022;
GO
SELECT objtype, objname, name, value
FROM fn_listextendedproperty (NULL, 'schema', 'Sales', 'table', default, NULL, NULL);
GO
另请参阅
sp_addextendedproperty (Transact-SQL)
sp_dropextendedproperty (Transact-SQL)
sp_updateextendedproperty (Transact-SQL)
sys.extended_properties (Transact-SQL)