檢視擴充屬性
在 SQL 陳述式中使用 fn_listextendedproperty 內建函數或 sys.extended_properties 目錄檢視,即可顯示資料庫物件上的擴充屬性。另外,也可以使用 SQL Server Management Studio 的 [物件總管] 來檢視擴充屬性。
使用 fn_listextendedproperty 函數
fn_listextendedproperty 函數可依據物件類型,顯示單一資料庫物件或資料庫中所有物件的擴充屬性。例如,您可以傳回資料表的擴充屬性,也可以傳回資料表中所有資料行的擴充屬性。
下列範例示範如何在 SELECT 陳述式中使用 fn_listextendedproperty 函數,來顯示各種物件的擴充屬性。
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. 顯示資料表中所有資料行的擴充屬性
下列範例會顯示結構描述 Production 所包含之 ScrapReason 資料表,其中資料行的擴充屬性。
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
使用 sys.extended_properties 目錄檢視
查詢 sys.extended_properties 目錄檢視,也可以顯示擴充屬性。此檢視提供了傳回擴充屬性值的簡單方法,並可與其他目錄檢視結合使用,以傳回其他資料,例如與擴充屬性相關聯的物件名稱或物件類型。
下列範例示範如何使用 sys.extended_properties 目錄檢視,來顯示各種物件的擴充屬性。加入其他目錄檢視的聯結則可傳回物件名稱,例如資料表中的資料行名稱。
A. 顯示資料庫的所有擴充屬性
下列範例會顯示 AdventureWorks 範例資料庫中的所有擴充屬性。
USE AdventureWorks;
GO
SELECT class, class_desc, major_id, minor_id, name, value
FROM sys.extended_properties;
GO
B. 顯示資料庫中所有索引的擴充屬性
下列範例會顯示 AdventureWorks 範例資料庫中索引的所有擴充屬性。
USE AdventureWorks;
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. 顯示資料表中資料行的擴充屬性
下列範例會顯示 AdventureWorks 範例資料庫中,所有資料表中之所有資料行的擴充屬性。
USE AdventureWorks;
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 中的 [物件總管] 來顯示、新增和刪除擴充屬性。但只能顯示所選取物件的擴充屬性。若要使用 [物件總管] 顯示物件的擴充屬性,請遵循以下步驟:
在 [物件總管] 中,以滑鼠右鍵按一下資料庫物件並選取 [屬性]。
從 [屬性] 對話方塊中,選取 [擴充屬性]。擴充屬性就會顯示在 [屬性] 窗格中。可在這個對話方塊中刪除現有的屬性,以及加入新的屬性。