拡張プロパティの表示
データベース オブジェクトの拡張プロパティは、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 のオブジェクト エクスプローラーを使用して、拡張プロパティを表示、追加、および削除できます。表示できるのは、選択されたオブジェクトの拡張プロパティのみです。オブジェクト エクスプローラーを使用してオブジェクトの拡張プロパティを表示するには、次の手順を実行します。
オブジェクト エクスプローラーで、データベース オブジェクトを右クリックし、[プロパティ] をクリックします。
[プロパティ] ダイアログ ボックスの [拡張プロパティ] を選択します。拡張プロパティが [プロパティ] ページに表示されます。このダイアログ ボックスでは、既存のプロパティを削除したり、新しいプロパティを追加したりできます。