檢視擴充屬性

在 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 個資料列受到影響)

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 個資料列受到影響)

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. [屬性] 對話方塊中,選取 [擴充屬性]。擴充屬性就會顯示在 [屬性] 窗格中。可在這個對話方塊中刪除現有的屬性,以及加入新的屬性。