「Microsoft SQL Server」が稼働するデータベースシステムを運用する管理者に向け、「動的管理ビュー」の活用を軸にしたトラブル対策のためのノウハウを紹介していきます。今回は、オブジェクトの最初の結果セットに関するメタデータの出力について解説します。
この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
##本文
本連載では、「Microsoft SQL Server(以下、SQL Server)」で使用可能な動的管理ビューについて、動作概要や出力内容などを紹介していきます。今回は動的管理ビュー「sys.dm_exec_describe_first_result_set_for_object」における、オブジェクトの最初の結果セットに関するメタデータの出力について解説します。対応バージョンは、SQL Server 2016以降です。
「sys.dm_exec_describe_first_result_set」では、クエリを実行することなくクエリの実行結果の列情報を取得できました。引数にストアドプロシージャ名を指定することで、ストアドプロシージャの実行結果の列情報を取得することもできました。
「sys.dm_exec_describe_first_result_set_for_object」はストアドプロシージャなどのオブジェクト名ではなく、オブジェクトIDを引数に指定することで実行結果の列情報に関する情報を出力します。
構文 sys.dm_exec_describe_first_result_set_for_object(@object_id, @include_browse_information)
引数 | 説明 |
---|---|
@object_id | ストアドプロシージャやトリガーのオブジェクトID |
@include_browse_information | 「1」に設定すると、キー列やソーステーブル情報などの追加情報が返される |
列名 | データ型 | 説明 |
---|---|---|
is_hidden | bit | 実際に結果セットには表示されないかどうかを示す |
column_ordinal | int | 結果セット内の列の位置を示す序数 |
name | sysname | 列の名前 |
is_nullable | bit | 列でNULLが許容されている場合は「1」、「NULL」を許容しない場合は「0」 |
system_type_id | int | データ型のID |
system_type_name | nvarchar(256) | データ型の名前 |
max_length | smallint | バイト単位の列の最大長 |
precision | tinyint | 数値ベースの列の有効桁数 |
scale | tinyint | 数値ベースの列の小数点以下桁数 |
collation_name | sysname | 文字ベースの列の照合順序の名前 |
user_type_id | int | CLR型と別名型のデータ型のID |
user_type_database | sysname | CLR型と別名型のデータベースの名前 |
user_type_schema | sysname | CLR型と別名型のスキーマの名前 |
user_type_name | sysname | CLR型と別名型の名前 |
assembly_qualified_type_name | nvarchar(4000) | CLR型のアセンブリの名前とクラス |
xml_collection_id | int | XMLスキーマコレクションのコレクションID |
xml_collection_database | sysname | XMLスキーマコレクションのデータベースの名前 |
xml_collection_schema | sysname | XMLスキーマコレクションのスキーマの名前 |
xml_collection_name | sysname | XMLスキーマコレクションの名前 |
is_xml_document | bit | ルートノードを含むXMLドキュメントの場合は「1」、それ以外の場合は「0」 |
is_case_sensitive | bit | 列が大文字と小文字を区別する文字列型の場合は「1」、それ以外の場合は「0」 |
is_fixed_length_clr_type | bit | 固定長のCLR型の場合は「1」、それ以外の場合は「0」 |
source_server | sysname | 「@include_browse_information」が「1」の場合は元のサーバの名前 |
source_database | sysname | 「@include_browse_information」が「1」の場合は元のデータベースの名前 |
source_schema | sysname | 「@include_browse_information」が「1」の場合は元のスキーマの名前 |
source_table | sysname | 「@include_browse_information」が「1」の場合は元のテーブルの名前 |
source_column | sysname | 「@include_browse_information」が「1」の場合は元の列の名前 |
is_identity_column | bit | ID列の場合は「1」、それ以外の場合は「0」 |
is_part_of_unique_key | bit | 「@include_browse_information」が「1」の場合、一意インデックスの一部である場合は「1」、それ以外の場合は「0」 |
is_updateable | bit | 更新可能である場合は「1」、それ以外の場合は「0」 |
is_computed_column | bit | 計算列の場合は「1」、それ以外の場合は「0」 |
is_sparse_column_set | bit | スパース列の場合は「1」、それ以外の場合は「0」 |
ordinal_in_order_by_list | smallint | 「ORDER BY」リストにおけるこの列の位置 |
order_by_list_length | smallint | 「ORDER BY」リストの長さ |
order_by_is_descending | smallint | 「ORDER BY」句の方向 |
error_number | int | 関数によって返されるエラー番号 |
error_severity | int | 関数によって返される重大度 |
error_state | int | 関数によって返される状態 |
error_message | nvarchar(4096) | 関数によって返されるメッセージ |
error_type | int | 関数によって返されるエラータイプID |
error_type_desc | nvarchar(60) | 関数によって返されるエラータイプ |
Copyright © ITmedia, Inc. All Rights Reserved.