sys.dm_exec_describe_first_result_set_for_object (Transact-SQL)sys.dm_exec_describe_first_result_set_for_object (Transact-SQL)

適用対象: ○SQL Server ○Azure SQL Database XAzure SQL Data Warehouse XParallel Data WarehouseAPPLIES TO: yesSQL Server yesAzure SQL Database noAzure SQL Data Warehouse noParallel Data Warehouse

この動的管理関数には、@object_idをパラメーターとしてその ID を持つモジュールの最初の結果のメタデータについて説明しますThis dynamic management function takes an @object_id as a parameter and describes the first result metadata for the module with that ID. @object_id指定の ID であることができます、Transact-SQLTransact-SQLストアド プロシージャまたはTransact-SQLTransact-SQLトリガーします。The @object_id specified can be the ID of a Transact-SQLTransact-SQL stored procedure or a Transact-SQLTransact-SQL trigger. その他のオブジェクト (ビュー、テーブル、関数、または CLR プロシージャ) などの ID の場合は、結果のエラー列にエラーが記載されます。If it is the ID of any other object (such as a view, table, function, or CLR procedure), an error will be specified in the error columns of the result.

sys.dm_exec_describe_first_result_set_for_object has the same result set definition as sys.dm_exec_describe_first_result_set (Transact-SQL) and is similar to sp_describe_first_result_set (Transact-SQL).sys.dm_exec_describe_first_result_set_for_object has the same result set definition as sys.dm_exec_describe_first_result_set (Transact-SQL) and is similar to sp_describe_first_result_set (Transact-SQL).

トピック リンク アイコン Transact-SQL 構文表記規則Topic link icon Transact-SQL Syntax Conventions

構文Syntax

  
sys.dm_exec_describe_first_result_set_for_object   
    ( @object_id , @include_browse_information )  

引数Arguments

*@object_id*
@object_idのTransact-SQLTransact-SQLストアド プロシージャまたはTransact-SQLTransact-SQLトリガーします。The @object_id of a Transact-SQLTransact-SQL stored procedure or a Transact-SQLTransact-SQL trigger. @object_id 型は、 intします。@object_id is type int.

*@include_browse_information*
@include_browse_information 型は、ビットします。@include_browse_information is type bit. 1 に設定すると、各クエリは FOR BROWSE オプションが指定されているように分析されます。If set to 1, each query is analyzed as if it has a FOR BROWSE option on the query. 追加のキー列とソース テーブル情報を返します。Returns additional key columns and source table information.

返されるテーブルTable Returned

この共通メタデータは、結果のメタデータの各列に対する 1 行の結果セットとして返されます。This common metadata is returned as a result set with one row for each column in the results metadata. 各行には、列の種類と NULL 値の許容属性が次のセクションに示す形式で記述されます。Each row describes the type and nullability of the column in the format described in the following section. 最初のステートメントは、各コントロールのパスが存在しない場合は、0 行を含む結果セットが返されます。If the first statement does not exist for every control path, a result set with zero rows is returned.

列名Column name データ型Data type 説明Description
is_hiddenis_hidden bitbit この列が、参照および情報提供の目的で追加された余分な列で、実際に結果セットには表示されないかどうかを示します。Specifies whether the column is an extra column added for browsing information purposes that does not actually appear in the result set.
column_ordinalcolumn_ordinal intint 結果セット内の列の位置を示す序数を格納します。Contains the ordinal position of the column in the result set. 最初の列の位置は 1 として指定されます。Position of the first column will be specified as 1.
namename sysnamesysname 列の名前を確認できる場合は、その名前を格納します。Contains the name of the column if a name can be determined. それ以外の場合は NULL です。Otherwise is NULL.
is_nullableis_nullable bitbit 列は Null を許可することを特定できない場合に、Null を列に Null を許容しない場合は 0 と 1 を許可する場合は、値 1 が含まれています。Contains the value 1 if the column allows NULLs, 0 if the column does not allow NULLs, and 1 if it cannot be determined that the column allows NULLs.
system_type_idsystem_type_id intint Sys.types で指定された列のデータ型の system_type_id を格納します。Contains the system_type_id of the data type of the column as specified in sys.types. CLR 型の場合は、system_type_name 列が NULL を返しても、この列は値 240 を返します。For CLR types, even though the system_type_name column will return NULL, this column will return the value 240.
system_type_namesystem_type_name nvarchar (256)nvarchar(256) データ型の名前を格納します。Contains the data type name. 列のデータ型に指定されている引数 (長さ、有効桁数、小数点以下桁数など) を含みます。Includes arguments (such as length, precision, scale) specified for the data type of the column. データ型がユーザー定義の別名型の場合は、基になるシステム型がここで指定されます。If the data type is a user-defined alias type, the underlying system type is specified here. CLR ユーザー定義型の場合は、この列には NULL が返されます。If it is a CLR user-defined type, NULL is returned in this column.
max_lengthmax_length smallintsmallint 列の最大長 (バイト単位) です。Maximum length (in bytes) of the column.

-1 = 列のデータ型はvarchar (max)nvarchar (max)varbinary (max) 、またはxmlします。-1 = Column data type is varchar(max), nvarchar(max), varbinary(max), or xml.

テキスト、列、 max_length値は 16 かによって設定された値になりますsp_tableoption 'text in row' します。For text columns, the max_length value will be 16 or the value set by sp_tableoption 'text in row'.
有効桁数 (precision)precision tinyinttinyint 数値ベースの場合は、列の有効桁数です。Precision of the column if numeric-based. それ以外の場合 0 を返します。Otherwise returns 0.
scalescale tinyinttinyint 数値ベースの場合は、列の小数点以下桁数です。Scale of column if numeric-based. それ以外の場合 0 を返します。Otherwise returns 0.
collation_namecollation_name sysnamesysname 文字ベースの場合は、列の照合順序の名前です。Name of the collation of the column if character-based. それ以外の場合、NULL を返します。Otherwise returns NULL.
user_type_iduser_type_id intint CLR 型と別名型の場合、sys.types で指定された列のデータ型の user_type_id を格納します。For CLR and alias types, contains the user_type_id of the data type of the column as specified in sys.types. それ以外の場合は NULL です。Otherwise is NULL.
user_type_databaseuser_type_database sysnamesysname CLR 型と別名型の場合、その型が定義されたデータベースの名前を格納します。For CLR and alias types, contains the name of the database in which the type is defined. それ以外の場合は NULL です。Otherwise is NULL.
user_type_schemauser_type_schema sysnamesysname CLR 型と別名型の場合、その型が定義されたスキーマの名前を格納します。For CLR and alias types, contains the name of the schema in which the type is defined. それ以外の場合は NULL です。Otherwise is NULL.
user_type_nameuser_type_name sysnamesysname CLR 型と別名型の場合、その型の名前を格納します。For CLR and alias types, contains the name of the type. それ以外の場合は NULL です。Otherwise is NULL.
assembly_qualified_type_nameassembly_qualified_type_name nvarchar (4000)nvarchar(4000) CLR 型の場合、その型を定義するアセンブリの名前とクラスを返します。For CLR types, returns the name of the assembly and class defining the type. それ以外の場合は NULL です。Otherwise is NULL.
xml_collection_idxml_collection_id intint sys.columns で指定された列のデータ型の xml_collection_id を格納します。Contains the xml_collection_id of the data type of the column as specified in sys.columns. この列は、返される型が XML スキーマ コレクションに関連付けられていない場合は NULL を返します。This column will return NULL if the type returned is not associated with an XML schema collection.
xml_collection_databasexml_collection_database sysnamesysname この型に関連付けられている XML スキーマ コレクションが定義されているデータベースを格納します。Contains the database in which the XML schema collection associated with this type is defined. この列は、返される型が XML スキーマ コレクションに関連付けられていない場合は NULL を返します。This column will return NULL if the type returned is not associated with an XML schema collection.
xml_collection_schemaxml_collection_schema sysnamesysname この型に関連付けられている XML スキーマ コレクションが定義されているスキーマを格納します。Contains the schema in which the XML schema collection associated with this type is defined. この列は、返される型が XML スキーマ コレクションに関連付けられていない場合は NULL を返します。This column will return NULL if the type returned is not associated with an XML schema collection.
xml_collection_namexml_collection_name sysnamesysname この型に関連付けられている XML スキーマ コレクションの名前を格納します。Contains the name of the XML schema collection associated with this type. この列は、返される型が XML スキーマ コレクションに関連付けられていない場合は NULL を返します。This column will return NULL if the type returned is not associated with an XML schema collection.
is_xml_documentis_xml_document bitbit 返されたデータ型が XML で、その型が XML フラグメントではなく完全な XML ドキュメント (ルート ノードを含む) であると保証される場合、1 を返します。Returns 1 if the returned data type is XML and that type is guaranteed to be a complete XML document (including a root node), as opposed to an XML fragment). それ以外の場合 0 を返します。Otherwise returns 0.
is_case_sensitiveis_case_sensitive bitbit 列がない場合に大文字の文字列型で、0 の場合は、1 を返します。Returns 1 if the column is of a case-sensitive string type and 0 if it is not.
is_fixed_length_clr_typeis_fixed_length_clr_type bitbit この列が固定長の CLR 型の場合は 1、それ以外の場合は 0 を返します。Returns 1 if the column is of a fixed-length CLR type and 0 if it is not.
source_serversource_server sysnamesysname この結果内の列によって返された元のサーバーの名前です (リモート サーバーから発生する場合)。Name of the originating server returned by the column in this result (if it originates from a remote server). Sys.servers に表示される、名前が与えられます。The name is given as it appears in sys.servers. 元のサーバーを特定することはできませんか、ローカル サーバー上で、列が発生した場合は NULL を返します。Returns NULL if the column originates on the local server, or if it cannot be determined which server it originates on. 参照情報が要求された場合にのみ設定されます。Is only populated if browsing information is requested.
source_databasesource_database sysnamesysname この結果内の列によって返された元のデータベースの名前です。Name of the originating database returned by the column in this result. データベースを特定できない場合は NULL を返します。Returns NULL if the database cannot be determined. 参照情報が要求された場合にのみ設定されます。Is only populated if browsing information is requested.
source_schemasource_schema sysnamesysname この結果内の列によって返された元のスキーマの名前です。Name of the originating schema returned by the column in this result. スキーマを特定できない場合は NULL を返します。Returns NULL if the schema cannot be determined. 参照情報が要求された場合にのみ設定されます。Is only populated if browsing information is requested.
source_tablesource_table sysnamesysname この結果内の列によって返された元のテーブルの名前です。Name of the originating table returned by the column in this result. テーブルを特定できない場合は NULL を返します。Returns NULL if the table cannot be determined. 参照情報が要求された場合にのみ設定されます。Is only populated if browsing information is requested.
source_columnsource_column sysnamesysname この結果内の列によって返された元の列の名前です。Name of the originating column returned by the column in this result. 列を特定できない場合は NULL を返します。Returns NULL if the column cannot be determined. 参照情報が要求された場合にのみ設定されます。Is only populated if browsing information is requested.
is_identity_columnis_identity_column bitbit この列が ID 列の場合は 1、それ以外の場合は 0 を返します。Returns 1 if the column is an identity column and 0 if not. ID 列であることを確認できない場合は NULL を返します。Returns NULL if it cannot be determined that the column is an identity column.
is_part_of_unique_keyis_part_of_unique_key bitbit この列が一意インデックス (一意制約と主キー制約を含む) の一部である場合は 1、それ以外の場合は 0 を返します。Returns 1 if the column is part of a unique index (including unique and primary constraint) and 0 if not. 一意インデックスの一部であることを確認できない場合は NULL を返します。Returns NULL if it cannot be determined that the column is part of a unique index. 参照情報が要求された場合にのみ設定されます。Only populated if browsing information is requested.
is_updateableis_updateable bitbit この列が更新可能である場合は 1、それ以外の場合は 0 を返します。Returns 1 if the column is updateable and 0 if not. 更新可能であることを確認できない場合は NULL を返します。Returns NULL if it cannot be determined that the column is updateable.
is_computed_columnis_computed_column bitbit この列が計算列の場合は 1、それ以外の場合は 0 を返します。Returns 1 if the column is a computed column and 0 if not. 列が計算列を特定できない場合は、NULL を返します。Returns NULL if it cannot be determined that the column is a computed column.
is_sparse_column_setis_sparse_column_set bitbit この列がスパース列の場合は 1、それ以外の場合は 0 を返します。Returns 1 if the column is a sparse column and 0 if not. スパース列セットの一部であることを確認できない場合は NULL を返します。Returns NULL if it cannot be determined that the column is a part of a sparse column set.
ordinal_in_order_by_listordinal_in_order_by_list smallintsmallint ORDER BY リストにおけるこの列の位置を返します。この列が ORDER BY リストにない場合、または ORDER BY リストを一意に特定できない場合は NULL を返します。Position of this column in ORDER BY list Returns NULL if the column does not appear in the ORDER BY list or if the ORDER BY list cannot be uniquely determined.
order_by_list_lengthorder_by_list_length smallintsmallint ORDER BY リストの長さを返します。Length of the ORDER BY list. ORDER BY リストがない場合、または ORDER BY リストを一意に特定できない場合は NULL を返します。Returns NULL if there is no ORDER BY list or if the ORDER BY list cannot be uniquely determined. この値は、sp_describe_first_result_set によって返されるすべての行に対して同じであることに注意してください。Note that this value will be the same for all rows returned by sp_describe_first_result_set.
order_by_is_descendingorder_by_is_descending smallint NULLsmallint NULL Ordinal_in_order_by_list が NULL でない場合、 order_by_is_descending列は、この列の ORDER BY 句の方向を報告します。If the ordinal_in_order_by_list is not NULL, the order_by_is_descending column reports the direction of the ORDER BY clause for this column. それ以外の場合は、NULL が報告されます。Otherwise it reports NULL.
error_numbererror_number intint 関数によって返されるエラー番号が格納されます。Contains the error number returned by the function. 列でエラーが発生しなかった場合は、NULL が格納されます。Contains NULL if no error occurred in the column.
error_severityerror_severity intint 関数によって返される重大度が格納されます。Contains the severity returned by the function. 列でエラーが発生しなかった場合は、NULL が格納されます。Contains NULL if no error occurred in the column.
error_stateerror_state intint 関数によって返される状態メッセージが格納されます。Contains the state message returned by the function. エラーが発生しなかった場合は、If no error occurred. NULL が格納されます。the column will contain NULL.
error_messageerror_message nvarchar(4096)nvarchar(4096) 関数によって返されるメッセージが格納されます。Contains the message returned by the function. エラーが発生しなかった場合は、NULL が格納されます。If no error occurred, the column will contain NULL.
error_typeerror_type intint 返されるエラーを表す整数が格納されます。Contains an integer representing the error being returned. error_type_desc にマップされます。Maps to error_type_desc. 解説の下の一覧を参照してください。See the list under remarks.
error_type_descerror_type_desc nvarchar(60)nvarchar(60) 返されるエラーを表す短い大文字の文字列が格納されます。Contains a short uppercase string representing the error being returned. error_type にマップされます。Maps to error_type. 解説の下の一覧を参照してください。See the list under remarks.

コメントRemarks

この関数と同じアルゴリズムを使用してsp_describe_first_result_setします。This function uses the same algorithm as sp_describe_first_result_set. 詳細については、sp_describe_first_result_set & #40 を参照してください。TRANSACT-SQL と #41 ですFor more information, see sp_describe_first_result_set (Transact-SQL).

次の表に、エラーの種類とその説明を示します。The following table lists the error types and their descriptions

error_typeerror_type error_typeerror_type 説明Description
11 MISCMISC 他の項目に記載されていないすべてのエラー。All errors that are not otherwise described.
22 SYNTAXSYNTAX バッチ内で構文エラーが発生しました。A syntax error occurred in the batch.
33 CONFLICTING_RESULTSCONFLICTING_RESULTS 2 つの有効な最初のステートメント間に競合があるため、結果を特定できませんでした。The result could not be determined because of a conflict between two possible first statements.
44 DYNAMIC_SQLDYNAMIC_SQL 動的 SQL が最初の結果を返す可能性があるため、結果を特定できませんでした。The result could not be determined because of dynamic SQL that could potentially return the first result.
55 CLR_PROCEDURECLR_PROCEDURE 結果でしたを特定できないため、CLR ストアド プロシージャは、最初の結果を返す可能性がある可能性があります。The result could not be determined because a CLR stored procedure could potentially return the first result.
66 CLR_TRIGGERCLR_TRIGGER CLR トリガーが最初の結果を返す可能性があるため、結果を特定できませんでした。The result could not be determined because a CLR trigger could potentially return the first result.
77 EXTENDED_PROCEDUREEXTENDED_PROCEDURE 拡張ストアド プロシージャが最初の結果を返す可能性があるため、結果を特定できませんでした。The result could not be determined because an extended stored procedure could potentially return the first result.
88 UNDECLARED_PARAMETERUNDECLARED_PARAMETER 1 つ以上の結果セットの列のデータ型が、宣言されていないパラメーターに依存する可能性があるために、結果を判別できませんでした。The result could not be determined because the data type of one or more of the result set's columns potentially depends on an undeclared parameter.
99 RECURSIONRECURSION バッチに再帰的なステートメントが含まれているため、結果を特定できませんでした。The result could not be determined because the batch contains a recursive statement.
1010 TEMPORARY_TABLETEMPORARY_TABLE バッチの一時テーブルが含まれていますでサポートされていないために、結果を判別できませんでしたsp_describe_first_result_setします。The result could not be determined because the batch contains a temporary table and is not supported by sp_describe_first_result_set .
1111 UNSUPPORTED_STATEMENTUNSUPPORTED_STATEMENT サポートされていないステートメントがバッチに含まれているために、結果を判別できませんでしたsp_describe_first_result_set (FETCH、REVERT など。)。The result could not be determined because the batch contains a statement that is not supported by sp_describe_first_result_set (e.g., FETCH, REVERT etc.).
1212 OBJECT_ID_NOT_SUPPORTEDOBJECT_ID_NOT_SUPPORTED @object_id関数に渡されますが (つまりストアド プロシージャ) はサポートされていませんThe @object_id passed to the function is not supported (i.e. not a stored procedure)
1313 OBJECT_ID_DOES_NOT_EXISTOBJECT_ID_DOES_NOT_EXIST @object_idに渡される関数がシステム カタログに見つかりません。The @object_id passed to the function was not found in the system catalog.

アクセス許可Permissions

実行する権限が必要です、@tsql引数。Requires permission to execute the @tsql argument.

使用例Examples

A.A. 参照情報ありおよび参照情報なしでメタデータを返すReturning metadata with and without browse information

次の例では、次の 2 つの結果セットを返す TestProc2 をという名前のストアド プロシージャを作成します。The following example creates a stored procedure named TestProc2 that returns two result sets. 例を示しますが、 sys.dm_exec_describe_first_result_setセットの手順、および参照情報なしで最初の結果に関する情報を返します。Then the example demonstrates that sys.dm_exec_describe_first_result_set returns information about the first result set in the procedure, with and without the browse information.

CREATE PROC TestProc2  
AS  
SELECT object_id, name FROM sys.objects ;  
SELECT name, schema_id, create_date FROM sys.objects ;  
GO  
  
SELECT * FROM sys.dm_exec_describe_first_result_set_for_object(OBJECT_ID('TestProc2'), 0) ;  
SELECT * FROM sys.dm_exec_describe_first_result_set_for_object(OBJECT_ID('TestProc2'), 1) ;  
GO  

B.B. sys.dm_exec_describe_first_result_set_for_object 関数をテーブルまたはビューと組み合わせるCombining the sys.dm_exec_describe_first_result_set_for_object function and a table or view

次のコードの例では、両方、sys.procedures システム カタログ ビューおよびsys.dm_exec_describe_first_result_set_for_object関数内のすべてのストアド プロシージャの結果セットのメタデータを表示、 AdventureWorks2012AdventureWorks2012データベース。The following example uses both the sys.procedures system catalog view and the sys.dm_exec_describe_first_result_set_for_object function to display metadata for the result sets of all stored procedures in the AdventureWorks2012AdventureWorks2012 database.

USE AdventureWorks2012;  
GO  
  
SELECT p.name, r.*   
FROM sys.procedures AS p  
CROSS APPLY sys.dm_exec_describe_first_result_set_for_object(p.object_id, 0) AS r;  
GO  
  

参照See Also

sp_describe_first_result_set (TRANSACT-SQL) sp_describe_first_result_set (Transact-SQL)
sp_describe_undeclared_parameters (TRANSACT-SQL) sp_describe_undeclared_parameters (Transact-SQL)
sys.dm_exec_describe_first_result_set (TRANSACT-SQL)sys.dm_exec_describe_first_result_set (Transact-SQL)