Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Gäller för:SQL Server
Azure SQL Database
Azure SQL Managed Instance
SQL-databas i Microsoft Fabric
Denna dynamiska hanteringsfunktion tar en @object_id som parameter och beskriver den första resultatmetadatan för modulen med det ID:t. Den @object_id specificerade kan vara ID:t för en Transact-SQL lagrad procedur eller en Transact-SQL-trigger. Om det är ID:t för något annat objekt (såsom en vy, tabell, funktion eller CLR-procedur) kommer ett fel att specificeras i felkolumnerna i resultatet.
sys.dm_exec_describe_first_result_set_for_object har samma definition av resultatmängd som sys.dm_exec_describe_first_result_set (Transact-SQL) och liknar sp_describe_first_result_set (Transact-SQL).
Transact-SQL syntaxkonventioner
Syntax
sys.dm_exec_describe_first_result_set_for_object
( @object_id , @include_browse_information )
Arguments
@object_id
Av @object_id en Transact-SQL lagrad procedur eller en Transact-SQL trigger.
@object_id är typ int.
@include_browse_information
@include_browse_information är typbit. Om den är inställd på 1 analyseras varje fråga som om den har ett FÖR BLÄDDER-alternativ på frågan. Returnerar ytterligare nyckelkolumner och källtabellsinformation.
Tabell returnerad
Denna gemensamma metadata returneras som en resultatuppsättning med en rad för varje kolumn i resultatmetadatan. Varje rad beskriver typen och nullbarheten för kolumnen i det format som beskrivs i följande avsnitt. Om den första satsen inte existerar för varje kontrollväg returneras en resultatmängd med noll rader.
| Kolumnnamn | Datatyp | Description |
|---|---|---|
| is_hidden | bit | Specificerar om kolumnen är en extra kolumn som lagts till för bläddringsinformationsändamål och som faktiskt inte förekommer i resultatuppsättningen. |
| column_ordinal | int | Innehåller kolumnens ordinala position i resultatmängden. Positionen för den första kolumnen anges som 1. |
| name | sysname | Innehåller namnet på kolumnen om ett namn kan bestämmas. Annars är NULL. |
| is_nullable | bit | Innehåller värdet 1 om kolumnen tillåter NULLs, 0 om kolumnen inte tillåter NULLs, och 1 om det inte kan fastställas att kolumnen tillåter NULLs. |
| system_type_id | int | Innehåller system_type_id av kolumnens datatyp enligt sys.types. För CLR-typer, även om kolumnen system_type_name returnerar NULL, kommer denna kolumn att returnera värdet 240. |
| system_type_name | nvarchar(256) | Innehåller namnet på datatypen. Inkluderar argument (såsom längd, precision, skala) specificerade för kolumnens datatyp. Om datatypen är en användardefinierad aliastyp anges den underliggande systemtypen här. Om det är en CLR-användardefinierad typ returneras NULL i denna kolumn. |
| max_length | smallint | Maximal längd (i byte) för kolumnen. -1 = Kolumndatatypen är varchar(max), nvarchar(max), varbinary(max)eller xml. För textkolumner kommer max_length värdet att vara 16 eller värdet som sätts av sp_tableoption 'text i rad'. |
| precision | tinyint | Kolumnens precision om numeriskt. Annars returnerar 0. |
| scale | tinyint | Kolumnskalan om den är numerisk. Annars returnerar 0. |
| collation_name | sysname | Namn på kolumnens sortering om den är teckenbaserad. Annars returnerar den NULL. |
| user_type_id | int | För CLR- och aliastyper innehåller user_type_id av kolumnens datatyp enligt sys.types. Annars är NULL. |
| user_type_database | sysname | För CLR- och aliastyper innehåller namnet på databasen där typen är definierad. Annars är NULL. |
| user_type_schema | sysname | För CLR- och aliastyper innehåller namnet på schemat där typen definieras. Annars är NULL. |
| user_type_name | sysname | För CLR- och aliastyper innehåller namnet på typen. Annars är NULL. |
| assembly_qualified_type_name | nvarchar(4000) | För CLR-typer returneras namnet på sammansättningen och klassen som definierar typen. Annars är NULL. |
| xml_collection_id | int | Innehåller xml_collection_id av kolumnens datatyp enligt sys.columns. Denna kolumn kommer att returnera NULL om den typ som returneras inte är associerad med en XML-schemasamling. |
| xml_collection_database | sysname | Innehåller databasen där XML-schemasamlingen kopplad till denna typ är definierad. Denna kolumn kommer att returnera NULL om den typ som returneras inte är associerad med en XML-schemasamling. |
| xml_collection_schema | sysname | Innehåller schemat där XML-schemasamlingen associerad med denna typ definieras. Denna kolumn kommer att returnera NULL om den typ som returneras inte är associerad med en XML-schemasamling. |
| xml_collection_name | sysname | Innehåller namnet på XML-schemasamlingen som är kopplad till denna typ. Denna kolumn kommer att returnera NULL om den typ som returneras inte är associerad med en XML-schemasamling. |
| is_xml_document | bit | Returnerar 1 om den returnerade datatypen är XML och den typen garanteras vara ett komplett XML-dokument (inklusive en rotnod), till skillnad från ett XML-fragment). Annars returnerar 0. |
| is_case_sensitive | bit | Returnerar 1 om kolumnen är av en kasuskänslig strängtyp och 0 om den inte är det. |
| is_fixed_length_clr_type | bit | Returnerar 1 om kolumnen är av en CLR-typ med fast längd och 0 om den inte är det. |
| source_server | sysname | Namnet på den ursprungsservern som returneras av kolumnen i detta resultat (om den kommer från en fjärrserver). Namnet anges som det visas i sys.servers. Returnerar NULL om kolumnen kommer från den lokala servern, eller om det inte kan avgöras på vilken server den har sitt ursprung. Fylls endast om det efterfrågas information om att surfa. |
| source_database | sysname | Namnet på den ursprungliga databasen som returneras av kolumnen i detta resultat. Returnerar NULL om databasen inte kan bestämmas. Fylls endast om det efterfrågas information om att surfa. |
| source_schema | sysname | Namnet på det ursprungliga schemat som returneras av kolumnen i detta resultat. Returnerar NULL om schemat inte kan bestämmas. Fylls endast om det efterfrågas information om att surfa. |
| source_table | sysname | Namnet på den ursprungliga tabellen som returneras av kolumnen i detta resultat. Returnerar NULL om tabellen inte kan bestämmas. Fylls endast om det efterfrågas information om att surfa. |
| source_column | sysname | Namnet på den ursprungliga kolumnen som returneras av kolumnen i detta resultat. Returnerar NULL om kolumnen inte kan bestämmas. Fylls endast om det efterfrågas information om att surfa. |
| is_identity_column | bit | Returnerar 1 om kolumnen är en identitetskolumn och 0 om inte. Returnerar NULL om det inte kan fastställas att kolumnen är en identitetskolumn. |
| is_part_of_unique_key | bit | Returnerar 1 om kolumnen är en del av ett unikt index (inklusive unikt och primärt constraint) och 0 om inte. Returnerar NULL om det inte kan fastställas att kolumnen är en del av ett unikt index. Endast fylld i om det efterfrågas information om att surfa. |
| is_updateable | bit | Returnerar 1 om kolumnen är uppdaterabar och 0 om inte. Returnerar NULL om det inte kan fastställas att kolumnen är uppdaterabar. |
| is_computed_column | bit | Returnerar 1 om kolumnen är en beräknad kolumn och 0 om inte. Returnerar NULL om det inte kan fastställas att kolumnen är en beräknad kolumn. |
| is_sparse_column_set | bit | Returnerar 1 om kolumnen är en gles kolumn och 0 om inte. Returnerar NULL om det inte kan fastställas att kolumnen är en del av en gles kolumnmängd. |
| ordinal_in_order_by_list | smallint | Positionen för denna kolumn i ORDER BY-listan Returnerar NULL om kolumnen inte förekommer i ORDER BY-listan eller om ORDER BY-listan inte kan bestämmas entyd. |
| order_by_list_length | smallint | Längden på ORDER BY-listan. Returnerar NULL om det inte finns någon ORDER BY-lista eller om ORDER BY-listan inte kan bestämmas entydigt. Observera att detta värde är detsamma för alla rader som returneras av sp_describe_first_result_set. |
| order_by_is_descending | smallint NULL | Om ordinal_in_order_by_list inte är NULL rapporterar kolumnen order_by_is_descending riktningen för ORDER BY-klausulen för denna kolumn. Annars rapporterar den NULL. |
| error_number | int | Innehåller felnumret som returneras av funktionen. Innehåller NULL om inget fel inträffade i kolumnen. |
| error_severity | int | Innehåller den allvarlighetsgrad som funktionen returnerar. Innehåller NULL om inget fel inträffade i kolumnen. |
| error_state | int | Innehåller tillståndsmeddelandet som returneras av funktionen. Om inget fel uppstod. kolumnen kommer att innehålla NULL. |
| error_message | Nvarchar(4096) | Innehåller meddelandet som returneras av funktionen. Om inget fel inträffade kommer kolumnen att innehålla NULL. |
| error_type | int | Innehåller ett heltal som representerar felet som returneras. Kartor till error_type_desc. Se listan under kommentarer. |
| error_type_desc | nvarchar(60) | Innehåller en kort versaliserande sträng som representerar felet som returneras. Kartor till error_type. Se listan under kommentarer. |
Anmärkningar
Denna funktion använder samma algoritm som sp_describe_first_result_set. För mer information, se sp_describe_first_result_set (Transact-SQL).
Följande tabell listar feltyperna och deras beskrivningar
| error_type | error_type | Description |
|---|---|---|
| 1 | MISC | Alla fel som inte annars beskrivs. |
| 2 | SYNTAX | Ett syntaxfel uppstod i batchen. |
| 3 | CONFLICTING_RESULTS | Resultatet kunde inte fastställas på grund av en konflikt mellan två möjliga första påståenden. |
| 4 | DYNAMIC_SQL | Resultatet kunde inte fastställas på grund av dynamisk SQL som potentiellt kunde returnera det första resultatet. |
| 5 | CLR_PROCEDURE | Resultatet kunde inte fastställas eftersom en CLR-lagrad propuder potentiellt kunde returnera det första resultatet. |
| 6 | CLR_TRIGGER | Resultatet kunde inte fastställas eftersom en CLR-trigger potentiellt kunde returnera det första resultatet. |
| 7 | EXTENDED_PROCEDURE | Resultatet kunde inte fastställas eftersom en utökad lagrad procedur potentiellt kunde returnera det första resultatet. |
| 8 | UNDECLARED_PARAMETER | Resultatet kunde inte bestämmas eftersom datatypen för en eller flera av resultatuppsättningens kolumner potentiellt beror på en odeklarerad parameter. |
| 9 | REKURSION | Resultatet kunde inte bestämmas eftersom batchen innehåller ett rekursivt påstående. |
| 10 | TEMPORARY_TABLE | Resultatet kunde inte bestämmas eftersom batchen innehåller en tillfällig tabell och inte stöds av sp_describe_first_result_set . |
| 11 | UNSUPPORTED_STATEMENT | Resultatet kunde inte fastställas eftersom batchen innehåller en sats som inte stöds av sp_describe_first_result_set (t.ex. FETCH, REVERT etc.). |
| 12 | OBJECT_ID_NOT_SUPPORTED | Den @object_id som passats till funktionen stöds inte (dvs. inte en lagrad procedur) |
| 13 | OBJECT_ID_DOES_NOT_EXIST | Övergången @object_id till funktionen hittades inte i systemkatalogen. |
Permissions
Kräver tillstånd för att utföra argumentet @tsql .
Examples
A. Returnera metadata med och utan bläddringsinformation
Följande exempel skapar en lagrad procedur kallad TestProc2 som returnerar två resultatmängder. Sedan visar exemplet att sys.dm_exec_describe_first_result_set returnerar information om den första resultatuppsättningen i proceduren, med och utan bläddringsinformationen.
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. Att kombinera sys.dm_exec_describe_first_result_set_for_object funktionen och en tabell eller vy
Följande exempel använder både sys.procedures systemkatalogvy och sys.dm_exec_describe_first_result_set_for_object-funktionen för att visa metadata för resultatmängderna för alla lagrade procedurer i databasen AdventureWorks2025 .
USE AdventureWorks2022;
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
Se även
sp_describe_first_result_set (Transact-SQL)
sp_describe_undeclared_parameters (Transact-SQL)
sys.dm_exec_describe_first_result_set (Transact-SQL)