Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of mappen te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen om mappen te wijzigen.
Van toepassing op:SQL Server
Azure SQL Database
Azure SQL Managed Instance
SQL-database in Microsoft Fabric
Deze dynamische beheerfunctie neemt een Transact-SQL-instructie als parameter en geeft de metadata terug voor de eerste resultaatset van de stelling.
sys.dm_exec_describe_first_result_set geeft dezelfde definitie van de resultaatset terug als sys.dm_exec_describe_first_result_set_for_object en is vergelijkbaar met sp_describe_first_result_set.
Transact-SQL syntaxis-conventies
Syntaxis
sys.dm_exec_describe_first_result_set(@tsql , @params , @include_browse_information)
Arguments
@tsql
Een of meer Transact-SQL instructies. De @tsql batch kan nvarchar(n) of nvarchar(max) zijn.
@params
@params levert een declaratiestring voor parameters voor de Transact-SQL batch, vergelijkbaar met sp_executesql. Parameters kunnen nvarchar(n) of nvarchar(max) zijn.
Een enkele string die de definities bevat van alle parameters die in de @tsql batch zijn ingebed. De tekenreeks moet een Unicode-constante of een Unicode-variabele zijn. Elke parameterdefinitie bestaat uit een parameternaam en een gegevenstype.
n is een tijdelijke aanduiding die aanvullende parameterdefinities aangeeft. Elke parameter die in stmt is gespecificeerd, moet in @params worden gedefinieerd. Als de Transact-SQL-instructie of batch in de instructie geen parameters bevat, is @params niet vereist.
NULL is de standaardwaarde voor deze parameter.
@include_browse_information
Als deze op 1 staat, wordt elke query geanalyseerd alsof er een FOR BROWSE optie op de query is. Het resultaat bevat extra sleutelkolommen en brontabelinformatie.
Tabel geretourneerd
De functie geeft deze gemeenschappelijke metadata terug als een resultaatset. Elke rij komt overeen met een kolom in de resultaatmetadata en beschrijft het type en de neutraliteit van de kolom in het formaat dat in de volgende tabel wordt getoond. Als de eerste uitspraak niet bestaat voor elk controlepad, geeft de functie een resultaatset met nul rijen terug.
| Kolomnaam | Gegevenstype | Description |
|---|---|---|
is_hidden |
bit | Geeft aan dat de kolom een extra kolom is, toegevoegd voor browsen en informatieve doeleinden, die niet daadwerkelijk in de resultaatset voorkomt. |
column_ordinal |
int | Bevat de ordinaalpositie van de kolom in de resultaatverzameling. De positie van de eerste kolom wordt gespecificeerd als 1. |
name |
sysname | Bevat de naam van de kolom als een naam kan worden bepaald. Zo niet, dan is NULLhet . |
is_nullable |
bit | Bevat de volgende waarden: Geeft terug 1 als kolom waarden toestaat NULL .Geeft terug 0 als de kolom geen waarden toestaat NULL .Geeft terug 1 als niet kan worden vastgesteld dat de kolom waarden toestaat NULL . |
system_type_id |
int | Bevat het system_type_id van het kolomdatatype zoals gespecificeerd in sys.types. Voor CLR-typen, hoewel de system_type_name kolom teruggeeft NULL, geeft deze kolom .240 |
system_type_name |
nvarchar(256) | Bevat de naam en argumenten (zoals lengte, precisie, schaal), gespecificeerd voor het datatype van de kolom. Als het datatype een door de gebruiker gedefinieerd aliastype is, wordt het onderliggende systeemtype hier gespecificeerd. Als het datatype een door CLR door de gebruiker gedefinieerd type is, NULL wordt in deze kolom teruggegeven. |
max_length |
smallint | Maximale lengte (in bytes) van de kolom.-1 = Kolomgegevenstype is varchar(max), nvarchar(max), varbinary(max)of xml-.Voor tekstkolommen is 16de max_length waarde , of de waarde die wordt gezet door sp_tableoption 'text in row'. |
precision |
tinyint | Precisie van de kolom als het numeriek is. Anders wordt 0geretourneerd. |
scale |
tinyint | Schaal van de kolom als het numeriek is. Anders wordt 0geretourneerd. |
collation_name |
sysname | Naam van de collatie van de kolom als het op karakter gebaseerd is. Anders wordt NULLgeretourneerd. |
user_type_id |
int | Voor CLR- en aliastypes bevat de user_type_id van het datatype van de kolom zoals gespecificeerd in sys.types. Anders is NULL. |
user_type_database |
sysname | Voor CLR- en aliastypes bevat het de naam van de database waarin het type is gedefinieerd. Anders is NULL. |
user_type_schema |
sysname | Voor CLR- en aliastypes bevat het de naam van het schema waarin het type is gedefinieerd. Anders is NULL. |
user_type_name |
sysname | Voor CLR- en aliastypes bevat de naam van het type. Anders is NULL. |
assembly_qualified_type_name |
nvarchar(4000) | Voor CLR-types geeft het de naam van de assembly en klasse die het type definieert, terug. Anders is NULL. |
xml_collection_id |
int | Bevat de xml_collection_id van het gegevenstype van de kolom zoals opgegeven in sys.columns. Deze kolom geeft terug NULL als het geretourneerde type niet gekoppeld is aan een XML-schemacollectie. |
xml_collection_database |
sysname | Bevat de database waarin de XML-schemacollectie die aan dit type is gekoppeld is gedefinieerd. Deze kolom geeft terug NULL als het geretourneerde type niet gekoppeld is aan een XML-schemacollectie. |
xml_collection_schema |
sysname | Bevat het schema waarin de XML-schemacollectie die aan dit type is gekoppeld is gedefinieerd. Deze kolom geeft terug NULL als het geretourneerde type niet gekoppeld is aan een XML-schemacollectie. |
xml_collection_name |
sysname | Bevat de naam van de XML-schemacollectie die aan dit type is gekoppeld. Deze kolom geeft terug NULL als het geretourneerde type niet gekoppeld is aan een XML-schemacollectie. |
is_xml_document |
bit | Geeft terug 1 als het geretourneerde datatype XML is en dat type gegarandeerd een volledig XML-document is (inclusief een root-node, in plaats van een XML-fragment). Anders wordt 0geretourneerd. |
is_case_sensitive |
bit | Geeft terug 1 als de kolom van een hoofdlettergevoelig stringtype is. Retourneren 0 als dat niet zo is. |
is_fixed_length_clr_type |
bit | Geeft terug 1 als de kolom van een CLR-type met vaste lengte is. Retourneren 0 als dat niet zo is. |
source_server |
sysname | Naam van de oorspronkelijke server (als deze afkomstig is van een externe server). De naam wordt gegeven zoals deze wordt weergegeven in sys.servers. Retourneert NULL als de kolom afkomstig is van de lokale server of als deze niet kan worden bepaald op welke server deze afkomstig is. Wordt alleen gevuld als browse-informatie wordt opgevraagd. |
source_database |
sysname | Naam van de oorspronkelijke database die door de kolom in dit resultaat wordt teruggegeven. Retourneert NULL als de database niet kan worden bepaald. Wordt alleen gevuld als browse-informatie wordt opgevraagd. |
source_schema |
sysname | Naam van het oorspronkelijke schema dat door de kolom in dit resultaat wordt teruggegeven. Retourneert NULL als het schema niet kan worden bepaald. Wordt alleen gevuld als browse-informatie wordt opgevraagd. |
source_table |
sysname | Naam van de oorspronkelijke tabel die door de kolom in dit resultaat wordt teruggegeven. Retourneert NULL als de tabel niet kan worden bepaald. Wordt alleen gevuld als browse-informatie wordt opgevraagd. |
source_column |
sysname | Naam van de oorspronkelijke kolom die door de resultaatkolom wordt teruggegeven. Retourneert NULL als de kolom niet kan worden bepaald. Wordt alleen gevuld als browse-informatie wordt opgevraagd. |
is_identity_column |
bit | Geeft terug 1 als de kolom een identiteitskolom is en 0 als dat niet zo is. Retourneert NULL als deze niet kan worden vastgesteld dat de kolom een identiteitskolom is. |
is_part_of_unique_key |
bit | Geeft terug 1 als de kolom deel uitmaakt van een unieke index (inclusief unieke en primaire beperkingen) en 0 als dat niet zo is. Retourneert NULL als deze niet kan worden vastgesteld dat de kolom deel uitmaakt van een unieke index. Wordt alleen gevuld als browse-informatie wordt opgevraagd. |
is_updateable |
bit | Geeft terug 1 als de kolom bijwerkbaar is en 0 als dat niet zo is. Retourneert NULL als deze niet kan worden vastgesteld dat de kolom kan worden bijgewerkt. |
is_computed_column |
bit | Geeft terug 1 als de kolom een berekende kolom is en 0 als dat niet zo is. Geeft terug NULL als het niet kan worden bepaald of de kolom een berekende kolom is. |
is_sparse_column_set |
bit | Geeft terug 1 als de kolom een dunne kolom is en 0 als dat niet zo is. Geeft aan NULL als niet kan worden vastgesteld dat de kolom deel uitmaakt van een sparse kolomverzameling. |
ordinal_in_order_by_list |
smallint | De positie van deze kolom staat in ORDER BY de lijst. Geeft terug NULL als de kolom niet in de ORDER BY lijst voorkomt, of als de ORDER BY lijst niet uniek kan worden bepaald. |
order_by_list_length |
smallint | De lengte van de ORDER BY lijst.
NULL wordt teruggegeven als er geen ORDER BY lijst is of als de ORDER BY lijst niet uniek kan worden bepaald. Deze waarde is hetzelfde voor alle rijen die worden geretourneerd door sp_describe_first_result_set. |
order_by_is_descending |
smallint | Als de ordinal_in_order_by_list niet is NULL, rapporteert de order_by_is_descending kolom de richting van de ORDER BY component voor deze kolom. Anders wordt NULLgerapporteerd. |
error_number |
int | Bevat het foutnummer dat door de functie wordt teruggegeven. Als er geen fout is opgetreden, bevat NULLde kolom . |
error_severity |
int | Bevat de ernst die door de functie wordt teruggegeven. Als er geen fout is opgetreden, bevat NULLde kolom . |
error_state |
int | Bevat het statusbericht dat door de functie wordt teruggegeven. Als er geen fout is opgetreden, bevat NULLde kolom . |
error_message |
Nvarchar(4096) | Bevat het bericht dat door de functie wordt teruggegeven. Als er geen fout is opgetreden, bevat NULLde kolom . |
error_type |
int | Bevat een geheel getal dat de teruggegeven fout vertegenwoordigt. Wordt toegewezen aan error_type_desc. Zie de lijst onder opmerkingen. |
error_type_desc |
nvarchar(60) | Bevat een korte hoofdletterreeks die de teruggegeven fout weergeeft. Wordt toegewezen aan error_type. Zie de lijst onder opmerkingen. |
Opmerkingen
Deze functie gebruikt hetzelfde algoritme als sp_describe_first_result_set. Voor meer informatie, zie sp_describe_first_result_set.
De volgende tabel geeft een overzicht van de fouttypen en hun beschrijvingen.
error_type |
error_type |
Description |
|---|---|---|
1 |
MISC |
Allemaal fouten die niet anders worden beschreven. |
2 |
SYNTAX |
Er deed zich een syntaxisfout voor in de batch. |
3 |
CONFLICTING_RESULTS |
Het resultaat kon niet worden vastgesteld vanwege een conflict tussen twee mogelijke eerste uitspraken. |
4 |
DYNAMIC_SQL |
Het resultaat kon niet worden bepaald vanwege dynamische SQL die mogelijk het eerste resultaat kon teruggeven. |
5 |
CLR_PROCEDURE |
Het resultaat kon niet worden bepaald omdat een door CLR opgeslagen procedure mogelijk het eerste resultaat kon teruggeven. |
6 |
CLR_TRIGGER |
Het resultaat kon niet worden bepaald omdat een CLR-trigger mogelijk het eerste resultaat kon teruggeven. |
7 |
EXTENDED_PROCEDURE |
Het resultaat kon niet worden bepaald omdat een uitgebreide opgeslagen procedure mogelijk het eerste resultaat kon teruggeven. |
8 |
UNDECLARED_PARAMETER |
Het resultaat kon niet worden bepaald omdat het datatype van een of meer kolommen in de resultaatset mogelijk afhangt van een niet-gedeclareerde parameter. |
9 |
RECURSION |
Het resultaat kon niet worden bepaald omdat de batch een recursieve formulering bevat. |
10 |
TEMPORARY_TABLE |
Het resultaat kon niet worden bepaald omdat de batch een tijdelijke tabel bevat en niet wordt ondersteund door sp_describe_first_result_set . |
11 |
UNSUPPORTED_STATEMENT |
Het resultaat kon niet worden bepaald omdat de batch een statement bevat die niet wordt ondersteund door sp_describe_first_result_set (bijvoorbeeld FETCH, REVERT, enz.). |
12 |
OBJECT_TYPE_NOT_SUPPORTED |
De @object_id pass-to-function wordt niet ondersteund (dat wil zeggen, het is geen stored procedure). |
13 |
OBJECT_DOES_NOT_EXIST |
De @object_id doorgegeven aan de functie staat niet in de systeemcatalogus. |
Permissions
Vereist toestemming om het @tsql-argument uit te voeren.
Voorbeelden
De codevoorbeelden in dit artikel gebruiken de AdventureWorks2025 of AdventureWorksDW2025 voorbeelddatabase die u kunt downloaden van de startpagina van Microsoft SQL Server Samples en Community Projects .
Je kunt de voorbeelden in het sp_describe_first_result_set artikel aanpassen om te gebruiken sys.dm_exec_describe_first_result_set.
Eén. Retourinformatie over één enkele Transact-SQL verklaring
De volgende code geeft informatie over de resultaten van een Transact-SQL-statement.
USE @AdventureWorks2025;
SELECT *
FROM sys.dm_exec_describe_first_result_set (
N'SELECT object_id, name, type_desc FROM sys.indexes', null, 0
);
B. Retourinformatie over een procedure
Het volgende voorbeeld creëert een opgeslagen procedure genaamd pr_TestProc die twee resultaatsets teruggeeft. Vervolgens toont het voorbeeld aan dat sys.dm_exec_describe_first_result_set informatie teruggeeft over de eerste resultaatset in de procedure.
USE @AdventureWorks2025;
GO
CREATE PROC Production.TestProc
AS
SELECT Name, ProductID, Color
FROM Production.Product;
SELECT Name, SafetyStockLevel, SellStartDate
FROM Production.Product;
GO
SELECT *
FROM sys.dm_exec_describe_first_result_set('Production.TestProc', NULL, 0);
C. Geef metadata terug uit een batch die meerdere statements bevat
Het volgende voorbeeld evalueert een batch die twee Transact-SQL statements bevat. De resultaatverzameling beschrijft de eerste resultaatset die wordt teruggegeven.
USE AdventureWorks2025;
GO
SELECT *
FROM sys.dm_exec_describe_first_result_set(
N'SELECT CustomerID, TerritoryID, AccountNumber FROM Sales.Customer WHERE CustomerID = @CustomerID;SELECT * FROM Sales.SalesOrderHeader;',
N'@CustomerID int',
0
) AS a;