查看扩展属性

可以在 SQL 语句中使用 fn_listextendedproperty 内置函数或 sys.extended_properties 目录视图显示数据库对象的扩展属性。还可以使用 SQL Server Management Studio 对象资源管理器查看扩展属性。

使用 fn_listextendedproperty 函数

fn_listextendedproperty 函数可以基于对象类型显示单个数据库对象或数据库中所有对象的扩展属性。例如,可以返回表或表中所有列的扩展属性。

下列示例说明了如何在 SELECT 语句中使用 fn_listextendedproperty 函数来显示各种对象的扩展属性。

A. 显示数据库的扩展属性

下面的示例显示了数据库本身设置的所有扩展属性。

USE AdventureWorks2008R2;
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. 显示表中所有列的扩展属性

下面的示例显示了包含在 Production 架构中的 ScrapReason 表中的列的扩展属性。

USE AdventureWorks2008R2;
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 AdventureWorks2008R2;
GO
SELECT objtype, objname, name, value
FROM fn_listextendedproperty (NULL, 'schema', 'Sales', 'table', default, NULL, NULL);
GO

使用 sys.extended_properties 目录视图

可以通过查询 sys.extended_properties 目录视图来显示扩展属性。该视图为返回扩展属性值提供了一个简单的方法,它还可以与其他目录视图结合使用以返回其他数据,例如,与扩展属性相关联的对象名称或对象类型。

下列示例说明了如何使用 sys.extended_properties 目录视图来显示各种对象的扩展属性。与其他目录视图结合使用可以返回对象名,例如表中的列名称。

A. 显示数据库中的所有扩展属性

下面的示例显示了 AdventureWorks2008R2 示例数据库中的所有扩展属性。

USE AdventureWorks2008R2;
GO
SELECT class, class_desc, major_id, minor_id, name, value
FROM sys.extended_properties;
GO

B. 显示数据库中所有索引的扩展属性

下面的示例显示了 AdventureWorks2008R2 示例数据库中索引的所有扩展属性。

USE AdventureWorks2008R2;
GO
SELECT class, class_desc, major_id, minor_id, ep.name, s.name AS [Index Name], value
FROM sys.extended_properties AS ep
INNER JOIN sys.indexes AS s ON ep.major_id = s.object_id AND ep.minor_id = s.index_id
WHERE class = 7;
GO

C. 显示表中列的扩展属性

下面的示例显示了 AdventureWorks2008R2 示例数据库中所有表中的所有列的扩展属性。

USE AdventureWorks2008R2;
GO
SELECT major_id, minor_id, t.name AS [Table Name], c.name AS [Column Name], value AS [Extended Property]
FROM sys.extended_properties AS ep
INNER JOIN sys.tables AS t ON ep.major_id = t.object_id 
INNER JOIN sys.columns AS c ON ep.major_id = c.object_id AND ep.minor_id = c.column_id
WHERE class = 1;
GO

使用对象资源管理器显示扩展属性

可以使用 SQL Server Management Studio 中的对象资源管理器显示、添加和删除扩展属性。只能显示选定对象的扩展属性。若要使用对象资源管理器显示对象的扩展属性,请执行下列操作:

  1. 在对象资源管理器中,右键单击数据库对象并选择**“属性”**。

  2. 从**“属性”对话框中选择“扩展属性”。扩展属性将显示在“属性”**窗格中。可以在此对话框中删除现有属性并添加新属性。