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

CETTE RUBRIQUE S’APPLIQUE À :ouiSQL Server (à partir de la version 2012)ouiAzure SQL DatabasenonAzure SQL Data Warehouse nonParallel Data Warehouse THIS TOPIC APPLIES TO:yesSQL Server (starting with 2012)yesAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse

Cette fonction de gestion dynamique accepte un @object_id en tant que paramètre et décrit les premières métadonnées de résultat pour le module avec cet ID.This dynamic management function takes an @object_id as a parameter and describes the first result metadata for the module with that ID. Le @object_id spécifié peut être l’ID d’un Transact-SQLTransact-SQL procédure stockée ou un Transact-SQLTransact-SQL déclencheur.The @object_id specified can be the ID of a Transact-SQLTransact-SQL stored procedure or a Transact-SQLTransact-SQL trigger. S'il s'agit de l'ID de tout autre objet (tel qu'une vue, une table, une fonction ou une procédure CLR), une erreur sera spécifiée dans les colonnes d'erreur du résultat.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 a le même jeu de résultats en tant que définition de sys.dm_exec_describe_first_result_set ( Transact-SQL ) et est semblable à 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).

Icône de lien de rubrique Conventions de la syntaxe Transact-SQLTopic link icon Transact-SQL Syntax Conventions

SyntaxeSyntax


sys.dm_exec_describe_first_result_set_for_object   
    ( @object_id , @include_browse_information )  

ArgumentsArguments

@object_id
Le @object_id d’un Transact-SQLTransact-SQL procédure stockée ou un Transact-SQLTransact-SQL déclencheur.The @object_id of a Transact-SQLTransact-SQL stored procedure or a Transact-SQLTransact-SQL trigger. @object_idest de type int.@object_id is type int.

@include_browse_information
@include_browse_informationest de type bits.@include_browse_information is type bit. Lorsque la valeur 1 est définie, chaque requête est analysée comme si elle comportait une option FOR BROWSE sur la requête.If set to 1, each query is analyzed as if it has a FOR BROWSE option on the query. Retourne des colonnes clés supplémentaires et des informations de table source.Returns additional key columns and source table information.

Table retournéeTable Returned

Ces métadonnées communes sont retournées en tant que jeu de résultats avec une ligne pour chaque colonne dans les métadonnées de résultats.This common metadata is returned as a result set with one row for each column in the results metadata. Chaque ligne décrit le type et la possibilité de valeur NULL de la colonne dans le format décrit dans la section suivante.Each row describes the type and nullability of the column in the format described in the following section. S'il n'existe pas de première instruction pour chaque chemin d'accès de contrôle, un jeu de résultats avec des lignes nulles est retourné.If the first statement does not exist for every control path, a result set with zero rows is returned.

Nom de colonneColumn name Type de donnéesData type DescriptionDescription
is_hiddenis_hidden bitbit Spécifie si la colonne est une colonne supplémentaire ajoutée à titre d'informations de navigation qui ne s'affiche pas réellement dans le jeu de résultats.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 Contient la position ordinale de la colonne dans le jeu de résultats.Contains the ordinal position of the column in the result set. Position de la première colonne sera spécifiée comme 1.Position of the first column will be specified as 1.
nomname sysnamesysname Contient le nom de la colonne si un nom peut être déterminé.Contains the name of the column if a name can be determined. Sinon, a la valeur NULL.Otherwise is NULL.
is_nullableis_nullable bitbit Contient la valeur 1 si la colonne autorise des valeurs NULL, 0 si la colonne n'autorise pas de valeurs NULL et 1 s'il est impossible de déterminer que la colonne autorise des valeurs NULL.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 Contient le system_type_id du type de données de la colonne comme spécifié dans sys.types.Contains the system_type_id of the data type of the column as specified in sys.types. Pour les types CLR, bien que la colonne system_type_name retourne NULL, cette colonne retournera la valeur 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) Contient le nom du type de données.Contains the data type name. Inclut des arguments (tels que la longueur, la précision, l'échelle) spécifiés pour le type de données de la colonne.Includes arguments (such as length, precision, scale) specified for the data type of the column. Si le type de données est un type d'alias défini par l'utilisateur, le type de système sous-jacent est spécifié ici.If the data type is a user-defined alias type, the underlying system type is specified here. S'il s'agit d'un type clr défini par l'utilisateur, NULL est retourné dans cette colonne.If it is a CLR user-defined type, NULL is returned in this column.
max_lengthmax_length smallintsmallint Longueur maximale (en octets) de la colonne.Maximum length (in bytes) of the column.

-1 = la colonne est de type de données varchar (max), nvarchar (max), varbinary (max), ou xml.-1 = Column data type is varchar(max), nvarchar(max), varbinary(max), or xml.

Pour texte des colonnes, le max_length valeur sera 16 ou à la valeur définie par 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'.
précisionprecision tinyinttinyint Précision de la colonne si elle est numérique.Precision of the column if numeric-based. Dans le cas contraire, retourne la valeur 0.Otherwise returns 0.
mise à l’échellescale tinyinttinyint Échelle de la colonne si elle est numérique.Scale of column if numeric-based. Dans le cas contraire, retourne la valeur 0.Otherwise returns 0.
collation_namecollation_name sysnamesysname Nom du classement de la colonne si elle est basée sur les caractères.Name of the collation of the column if character-based. Sinon, retourne NULL.Otherwise returns NULL.
user_type_iduser_type_id intint Pour les types d'alias et CLR, contient l'information user_type_id du type de données de la colonne comme spécifié dans sys.types.For CLR and alias types, contains the user_type_id of the data type of the column as specified in sys.types. Sinon, a la valeur NULL.Otherwise is NULL.
user_type_databaseuser_type_database sysnamesysname Pour les types d'alias et CLR, contient le nom de la base de données dans laquelle le type est défini.For CLR and alias types, contains the name of the database in which the type is defined. Sinon, a la valeur NULL.Otherwise is NULL.
user_type_schemauser_type_schema sysnamesysname Pour les types d'alias et CLR, contient le nom du schéma dans lequel le type est défini.For CLR and alias types, contains the name of the schema in which the type is defined. Sinon, a la valeur NULL.Otherwise is NULL.
user_type_nameuser_type_name sysnamesysname Pour les types d'alias et CLR, contient le nom du type.For CLR and alias types, contains the name of the type. Sinon, a la valeur NULL.Otherwise is NULL.
assembly_qualified_type_nameassembly_qualified_type_name nvarchar(4000)nvarchar(4000) Pour les types CLR, retourne le nom de l'assembly et de la classe définissant le type.For CLR types, returns the name of the assembly and class defining the type. Sinon, a la valeur NULL.Otherwise is NULL.
xml_collection_idxml_collection_id intint Contient l'information xml_collection_id du type de données de la colonne comme spécifié dans sys.columns.Contains the xml_collection_id of the data type of the column as specified in sys.columns. Cette colonne retournera NULL si le type retourné n'est pas associé à une collection de schémas XML.This column will return NULL if the type returned is not associated with an XML schema collection.
xml_collection_databasexml_collection_database sysnamesysname Contient la base de données dans laquelle la collection de schémas XML associée à ce type est définie.Contains the database in which the XML schema collection associated with this type is defined. Cette colonne retournera NULL si le type retourné n'est pas associé à une collection de schémas XML.This column will return NULL if the type returned is not associated with an XML schema collection.
xml_collection_schemaxml_collection_schema sysnamesysname Contient le schéma dans lequel la collection de schémas XML associée à ce type est définie.Contains the schema in which the XML schema collection associated with this type is defined. Cette colonne retournera NULL si le type retourné n'est pas associé à une collection de schémas XML.This column will return NULL if the type returned is not associated with an XML schema collection.
xml_collection_namexml_collection_name sysnamesysname Contient le nom de la collection de schémas XML associé à ce type.Contains the name of the XML schema collection associated with this type. Cette colonne retournera NULL si le type retourné n'est pas associé à une collection de schémas XML.This column will return NULL if the type returned is not associated with an XML schema collection.
is_xml_documentis_xml_document bitbit Retourne 1 si le type de données retourné est XML et que ce type est garanti être un document XML complet (nœud racine compris), par opposition à un fragment XML.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). Dans le cas contraire, retourne la valeur 0.Otherwise returns 0.
is_case_sensitiveis_case_sensitive bitbit Retourne 1 si la colonne est d'un type chaîne sensible à la casse et 0 si ce n'est pas le cas.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 Retourne 1 si la colonne est d'un type CLR de longueur fixe et 0 si ce n'est pas le cas.Returns 1 if the column is of a fixed-length CLR type and 0 if it is not.
serveur_sourcesource_server sysnamesysname Nom du serveur d'origine retourné par la colonne dans ce résultat (s'il provient d'un serveur distant).Name of the originating server returned by the column in this result (if it originates from a remote server). Le nom est donné tel qu’il apparaît dans sys.servers.The name is given as it appears in sys.servers. Retourne NULL si la colonne est initiée sur le serveur local, ou si elle ne peut pas être déterminé quel serveur elle provenance.Returns NULL if the column originates on the local server, or if it cannot be determined which server it originates on. Est fourni uniquement si les informations de navigation sont demandées.Is only populated if browsing information is requested.
source_databasesource_database sysnamesysname Nom de la base de données d'origine retourné par la colonne dans ce résultat.Name of the originating database returned by the column in this result. Retourne NULL si la base de données ne peut pas être déterminée.Returns NULL if the database cannot be determined. Est fourni uniquement si les informations de navigation sont demandées.Is only populated if browsing information is requested.
source_schemasource_schema sysnamesysname Nom du schéma d'origine retourné par la colonne dans ce résultat.Name of the originating schema returned by the column in this result. Retourne NULL si le schéma ne peut pas être déterminé.Returns NULL if the schema cannot be determined. Est fourni uniquement si les informations de navigation sont demandées.Is only populated if browsing information is requested.
table_sourcesource_table sysnamesysname Nom de la table d'origine retourné par la colonne dans ce résultat.Name of the originating table returned by the column in this result. Retourne NULL si la table ne peut pas être déterminée.Returns NULL if the table cannot be determined. Est fourni uniquement si les informations de navigation sont demandées.Is only populated if browsing information is requested.
source_columnsource_column sysnamesysname Nom de la colonne d'origine retourné par la colonne dans ce résultat.Name of the originating column returned by the column in this result. Retourne NULL si la colonne ne peut pas être déterminée.Returns NULL if the column cannot be determined. Est fourni uniquement si les informations de navigation sont demandées.Is only populated if browsing information is requested.
is_identity_columnis_identity_column bitbit Retourne 1 si la colonne est une colonne d'identité et 0 dans le cas contraire.Returns 1 if the column is an identity column and 0 if not. Retourne NULL s'il est impossible de déterminer que la colonne est une colonne d'identité.Returns NULL if it cannot be determined that the column is an identity column.
is_part_of_unique_keyis_part_of_unique_key bitbit Retourne 1 si la colonne fait partie d'un index unique (notamment la contrainte unique et primaire) et 0 dans le cas contraire.Returns 1 if the column is part of a unique index (including unique and primary constraint) and 0 if not. Retourne NULL s'il est impossible de déterminer que la colonne fait partie d'un index unique.Returns NULL if it cannot be determined that the column is part of a unique index. Fourni uniquement si les informations de navigation sont demandées.Only populated if browsing information is requested.
is_updateableis_updateable bitbit Retourne 1 si la colonne peut être mise à jour et 0 dans le cas contraire.Returns 1 if the column is updateable and 0 if not. Retourne NULL s'il est impossible de déterminer que la colonne peut être mise à jour.Returns NULL if it cannot be determined that the column is updateable.
is_computed_columnis_computed_column bitbit Retourne 1 si la colonne est une colonne calculée et 0 dans le cas contraire.Returns 1 if the column is a computed column and 0 if not. Retourne NULL s’il ne peut pas être déterminé que la colonne est une colonne calculée.Returns NULL if it cannot be determined that the column is a computed column.
is_sparse_column_setis_sparse_column_set bitbit Retourne 1 si la colonne est une colonne éparse et 0 dans le cas contraire.Returns 1 if the column is a sparse column and 0 if not. Retourne NULL s'il est impossible de déterminer que la colonne fait partie d'un jeu de colonnes éparses.Returns NULL if it cannot be determined that the column is a part of a sparse column set.
valeur ordinal_in_order_by_listordinal_in_order_by_list smallintsmallint Position de cette colonne dans la liste ORDER BY. Retourne NULL si la colonne ne s'affiche pas dans la liste ORDER BY ou si la liste ORDER BY ne peut pas être déterminée de manière unique.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 Longueur de la liste ORDER BY.Length of the ORDER BY list. Retourne NULL s'il n'existe aucune liste ORDER BY ou si la liste ORDER BY ne peut pas être déterminée de manière unique.Returns NULL if there is no ORDER BY list or if the ORDER BY list cannot be uniquely determined. Notez que cette valeur sera la même pour toutes les lignes retournées par 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 Si la valeur ordinal_in_order_by_list n’est pas NULL, le order_by_is_descending colonne indique la direction de la clause ORDER BY pour cette colonne.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. Sinon, elle indique NULL.Otherwise it reports NULL.
error_numbererror_number intint Contient le numéro d'erreur retourné par la fonction.Contains the error number returned by the function. Contient NULL si aucune erreur ne s'est produite dans la colonne.Contains NULL if no error occurred in the column.
error_severityerror_severity intint Contient la gravité retournée par la fonction.Contains the severity returned by the function. Contient NULL si aucune erreur ne s'est produite dans la colonne.Contains NULL if no error occurred in the column.
error_stateerror_state intint Contient le message d’état retourné par la fonction.Contains the state message returned by the function. Si aucune erreur ne s'est produite,If no error occurred. la colonne contiendra NULL.the column will contain NULL.
error_messageerror_message nvarchar(4096)nvarchar(4096) Contient le message retourné par la fonction.Contains the message returned by the function. Si aucune erreur ne s'est produite, la colonne contiendra NULL.If no error occurred, the column will contain NULL.
error_typeerror_type intint Contient un entier qui représente l'erreur retournée.Contains an integer representing the error being returned. Mappé à error_type_desc.Maps to error_type_desc. Consultez la liste sous les notes.See the list under remarks.
error_type_descerror_type_desc nvarchar (60)nvarchar(60) Contient une chaîne majuscule courte qui représente l'erreur retournée.Contains a short uppercase string representing the error being returned. Mappé à error_type.Maps to error_type. Consultez la liste sous les notes.See the list under remarks.

NotesRemarks

Cette fonction utilise le même algorithme que sp_describe_first_result_set.This function uses the same algorithm as sp_describe_first_result_set. Pour plus d’informations, consultez sp_describe_first_result_set ( Transact-SQL ) .For more information, see sp_describe_first_result_set (Transact-SQL).

Le tableau suivant répertorie les types d'erreur et leur description.The following table lists the error types and their descriptions

error_typeerror_type error_typeerror_type DescriptionDescription
11 MISCMISC Toutes les erreurs qui ne font pas l'objet d'une description.All errors that are not otherwise described.
22 SYNTAXSYNTAX Une erreur de syntaxe s'est produite dans le lot.A syntax error occurred in the batch.
33 CONFLICTING_RESULTSCONFLICTING_RESULTS Le résultat n'a pas pu être déterminé en raison d'un conflit entre deux premières instructions possibles.The result could not be determined because of a conflict between two possible first statements.
44 DYNAMIC_SQLDYNAMIC_SQL Le résultat n'a pas pu être déterminé en raison du SQL dynamique qui pourrait éventuellement retourner le premier résultat.The result could not be determined because of dynamic SQL that could potentially return the first result.
55 CLR_PROCEDURECLR_PROCEDURE Le résultat n'a pas pu être déterminé parce qu'une procédure stockée clr pourrait éventuellement retourner le premier résultat.The result could not be determined because a CLR stored procedure could potentially return the first result.
66 CLR_TRIGGERCLR_TRIGGER Le résultat n'a pas pu être déterminé parce qu'un déclencheur CLR pourrait éventuellement retourner le premier résultat.The result could not be determined because a CLR trigger could potentially return the first result.
77 EXTENDED_PROCEDUREEXTENDED_PROCEDURE Le résultat n'a pas pu être déterminé parce qu'une procédure stockée étendue pourrait éventuellement retourner le premier résultat.The result could not be determined because an extended stored procedure could potentially return the first result.
88 UNDECLARED_PARAMETERUNDECLARED_PARAMETER Le résultat n'a pas pu être déterminé car le type de données d'une ou plusieurs des colonnes du jeu de résultats dépend potentiellement d'un paramètre non déclaré.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 Le résultat n'a pas pu être déterminé car le lot contient une instruction récursive.The result could not be determined because the batch contains a recursive statement.
1010 TEMPORARY_TABLETEMPORARY_TABLE Le résultat n’a pas pu être déterminé car le lot contient une table temporaire n’est pas pris en charge par 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 Le résultat n’a pas pu être déterminé car le lot contient une instruction qui n’est pas pris en charge par sp_describe_first_result_set (par exemple, FETCH, REVERT etc.).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 Le @object_id transmis à la fonction est pas pris en charge (autrement dit, pas une procédure stockée)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 Le @object_id transmis à la fonction est introuvable dans le catalogue système.The @object_id passed to the function was not found in the system catalog.

PermissionsPermissions

Requiert l’autorisation d’exécuter le @tsql argument.Requires permission to execute the @tsql argument.

ExemplesExamples

A.A. Retour de métadonnées avec et sans informations de navigationReturning metadata with and without browse information

L’exemple suivant crée une procédure stockée nommée TestProc2 qui retourne deux jeux de résultats.The following example creates a stored procedure named TestProc2 that returns two result sets. Ensuite, l’exemple montre que sys.dm_exec_describe_first_result_set retourne des informations sur le premier jeu de résultats dans la procédure, avec et sans les informations de navigation.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. Combinaison de la fonction sys.dm_exec_describe_first_result_set_for_object avec une table ou une vueCombining the sys.dm_exec_describe_first_result_set_for_object function and a table or view

L’exemple suivant utilise à la fois la vue de catalogue de système sys.procedures et sys.dm_exec_describe_first_result_set_for_object (fonction) pour afficher les métadonnées pour les jeux de résultats de toutes les procédures stockées dans le AdventureWorks2012AdventureWorks2012 base de données.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  

Voir aussiSee 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)