sys.fn_listextendedproperty (Transact-SQL)
適用対象: SQL Server Azure SQL Database Azure SQL Managed Instance
データベース オブジェクトの拡張プロパティ値を返します。
構文
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
重要
レベル 0 の型としてのユーザーと TYPE は、今後のバージョンの SQL Server で削除される予定です。 新しい開発作業では、これらの機能の使用を避け、現在これらの機能を使用しているアプリケーションは修正するようにしてください。 USER の代わりに、レベル 0 の種類として SCHEMA を使用してください。 TYPE については、レベル 0 の種類として SCHEMA、レベル 1 の種類として TYPE を使用してください。
{ default | 'level0_object_name' | NULL }
指定されたレベル 0 のオブジェクト型の名前です。 level0_object_name は sysname 既定値は NULL です。 有効な入力は、既定値、NULL、またはオブジェクト名です。
{ default | 'level1_object_type' | NULL }
レベル 1 オブジェクトの型です。 level1_object_type は、既定値が NULL varchar(128) です。
有効な入力は次のとおりです。
- AGGREGATE
- DEFAULT
- FUNCTION
- 論理ファイル名
- PROCEDURE
- QUEUE
- RULE
- SYNONYM
- TABLE
- TYPE
- VIEW
- XML SCHEMA COLLECTION
- NULL
Note
既定値は NULL にマップされ、'default' はオブジェクト型 DEFAULT にマップされます。
{default | 'level1_object_name' |NULL }
指定されたレベル 1 のオブジェクトの種類の名前です。 level1_object_name は sysname 既定値は NULL です。 有効な入力は、既定値、NULL、またはオブジェクト名です。
{ default | 'level2_object_type' |NULL }
レベル 2 のオブジェクトの種類です。 level2_object_type は、既定値が NULL の varchar(128) です。
有効な入力は次のとおりです。
- DEFAULT
- default (NULL にマップ)
- NULL。 level2_object_typeの有効な入力は次のとおりです。
- COLUMN
- CONSTRAINT
- EVENT NOTIFICATION
- INDEX
- PARAMETER
- TRIGGER
- NULL
{ default | 'level2_object_name' |NULL }
指定されたレベル 2 のオブジェクトの種類の名前です。 level2_object_name は sysname 既定値は NULL です。 有効な入力は、既定値、NULL、またはオブジェクト名です。
返されるテーブル
次の表は、fn_listextendedproperty が返すテーブルの形式です。
列名 | データ型 |
---|---|
objtype | sysname |
objname | sysname |
name | sysname |
値 | sql_variant |
返されたテーブルが空の場合、オブジェクトに拡張プロパティがないか、オブジェクトの拡張プロパティを一覧表示する権限がありません。 データベース自体の拡張プロパティを返す場合、objtype 列と objname 列は NULL になります。
解説
property_nameの値が NULL または既定値の場合、fn_listextendedpropertyは指定したオブジェクトのすべてのプロパティを返します。
オブジェクト型が指定され、対応するオブジェクト名の値が NULL または既定値の場合、fn_listextendedpropertyは、指定された型のすべてのオブジェクトのすべての拡張プロパティを返します。
オブジェクトはレベルに応じて区別され、レベル 0 は最高、レベル 2 は最も低くなります。 下位レベルであるレベル 1 または 2 のオブジェクトの種類および名前を指定する場合、親オブジェクトの種類と名前を、NULL または default 以外の値で指定する必要があります。 それ以外の場合は、空のセットを返します。
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)