Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőkre vonatkozik:SQL Server
Azure SQL Database
Felügyelt Azure SQL-példány
SQL-adatbázis a Microsoft Fabricben
Ez a dinamikus menedzsment függvény egy Transact-SQL állítást vesz fel paraméterként, és leírja az állítás első eredményhalmazának metaadatait.
sys.dm_exec_describe_first_result_set ugyanazzal az eredményhalmaz-definícióval rendelkezik, mint a sys.dm_exec_describe_first_result_set_for_object (Transact-SQL), és hasonló a sp_describe_first_result_set (Transact-SQL)-hoz.
Transact-SQL szintaxis konvenciók
Szemantika
sys.dm_exec_describe_first_result_set(@tsql, @params, @include_browse_information)
Arguments
@tsql
Egy vagy több Transact-SQL utasítás.
A Transact-SQL_batch lehet nvarchar(n) vagy nvarchar(max).
@params
@params egy deklarációs láncsort biztosít a Transact-SQL tétel paramétereire, hasonlóan a sp_executesql-hez. A paraméterek lehetnek nvarchar(n) vagy nvarchar(max).
Egy string, amely tartalmazza az összes paraméter definícióját, amely a Transact-SQL_batch-be van ágyazva. A sztringnek Unicode-állandónak vagy Unicode-változónak kell lennie. Minden paraméterdefiníció egy paraméternévből és egy adattípusból áll. n egy helyőrző, amely további paraméterdefiníciókat jelez. Minden stmt-ben megadott paramétert meg kell határozni @params-ben. Ha a Transact-SQL utasítás vagy tétel nem tartalmaz paramétereket, @params nem szükséges. A NULL az alapértelmezett érték ehhez a paraméterhez.
@include_browse_information
Ha 1-re van állítva, minden lekérdezést úgy elemeznek, mintha lenne egy FOR BROWSE opció a lekérdezésen. További kulcsfontosságú oszlopok és forrástábla információk érkeznek.
Visszaadott tábla
Ez a közös metaadat eredményhalmazként kerül vissza. Az eredményadatok minden oszlopához egy sor írja le az oszlop típusát és nullitását az alábbi táblázatban látható formátumban. Ha az első állítás nem létezik minden vezérlőútra, akkor egy nulla soros eredményhalmazt kapunk.
| Oszlop név | Adattípus | Description |
|---|---|---|
| is_hidden | bit | Megadja, hogy az oszlop egy további oszlop, amelyet böngészés és információs célokra adnak hozzá, de valójában nem jelenik meg az eredményhalmazban. |
| column_ordinal | int | Tartalmazza az oszlop sorrendhelyzetét az eredményhalmazban. Az első oszlop pozíciója 1-ként lesz megadva. |
| név | sysname | Tartalmazza az oszlop nevét, ha meg lehet határozni egy név. Ha nem, akkor NULL lesz. |
| is_nullable | bit | Tartalmazza a következő értékeket: 1-es érték, ha az oszlop engedélyezi a NULL-okat. 0 érték, ha az oszlop nem engedélyezi a NULL-okat. 1-es érték, ha nem állapítható meg, hogy az oszlop engedélyezi a NULL-okat. |
| system_type_id | int | Tartalmazza az oszlopadattípus system_type_id a sys.types területén meghatározott mértékben. CLR típusok esetén, bár a system_type_name oszlop NULL-t ad, ez az oszlop 240 értéket ad vissza. |
| system_type_name | nvarchar(256) | Tartalmazza a nevet és az argumentumokat (például hosszúság, pontosság, méretarány), amelyek az oszlop adattípusához vannak megadva. Ha az adattípus felhasználó által definiált alias típus, akkor az alapul szolgáló rendszertípus itt van megadva. Ha az adattípus CLR felhasználó által definiált típus, akkor a NULL ebben az oszlopban jelenik meg. |
| max_length | smallint | Az oszlop maximális hossza (bájtban kifejezve). -1 = Az oszlop adattípusa varchar(max), nvarchar(max), varbinary(max), vagy xml. Szövegoszlopokesetén a max_length érték 16, vagy sp_tableoption által beállított érték 'szöveg sorban'. |
| pontossági | tinyint | Az oszlop pontossága, ha numerikus. Egyébként 0-t ad. |
| scale | tinyint | Az oszlop skálája, ha numerikusan alapul. Egyébként 0-t ad. |
| collation_name | sysname | Az oszlop összeállításának neve, ha karakter-alapú. Ellenkező esetben NULL jelenik meg. |
| user_type_id | int | CLR és alias típusok esetén tartalmazza az oszlop adattípusának user_type_id a sys.types által meghatározott módon. Egyébként NULL. |
| user_type_database | sysname | CLR és alias típusok esetén tartalmazza annak az adatbázisnak a nevét, amelyben a típus definiálva van. Egyébként NULL. |
| user_type_schema | sysname | CLR és alias típusok esetén tartalmazza annak a sémának a nevét, amelyben a típus meg van határozva. Egyébként NULL. |
| user_type_name | sysname | CLR és alias típusok esetén tartalmazza a típus nevét. Egyébként NULL. |
| assembly_qualified_type_name | nvarchar(4000) | CLR típusok esetén a típust definiáló assembly és osztály nevét adja vissza. Egyébként NULL. |
| xml_collection_id | int | Tartalmazza az oszlop adattípusának xml_collection_id a sys.columns területén meghatározott adattípus szerint. Ez az oszlop NULL-t ad vissza, ha a visszaadott típus nem egy XML sémagyűjteményhez tartozik. |
| xml_collection_database | sysname | Tartalmazza azt az adatbázist, amelyben az ehhez a típushoz tartozó XML sémagyűjtemény definiálva van. Ez az oszlop NULL-t ad vissza, ha a visszaadott típus nem egy XML sémagyűjteményhez tartozik. |
| xml_collection_schema | sysname | Tartalmazza azt a sémát, amelyben az ehhez a típushoz tartozó XML sémagyűjtemény definiálva van. Ez az oszlop NULL-t ad vissza, ha a visszaadott típus nem egy XML sémagyűjteményhez tartozik. |
| xml_collection_name | sysname | Tartalmazza az ehhez a típushoz tartozó XML sémagyűjtemény nevét. Ez az oszlop NULL-t ad vissza, ha a visszaadott típus nem egy XML sémagyűjteményhez tartozik. |
| is_xml_document | bit | 1-et ad vissza, ha a visszaküldött adattípus XML, és ez a típus garantáltan teljes XML dokumentum (beleértve egy gyökércsomópontot is), nem pedig XML töredéket. Egyébként 0-t ad. |
| is_case_sensitive | bit | 1-et ad vissza, ha az oszlop kis- és nagybetűs stringtípusú. Ha nem az, 0-t ad vissza. |
| is_fixed_length_clr_type | bit | 1-et ad vissza, ha az oszlop fix hosszúságú CLR típusú. Ha nem az, 0-t ad vissza. |
| source_server | sysname | Az eredeti szerver neve (ha távoli szerverről származik). A név úgy jelenik meg, ahogy a sys.servers adatbázisban megjelenik. Null értéket ad vissza, ha az oszlop a helyi szerverről indul, vagy ha nem lehet meghatározni, melyik szerverről származik. Csak akkor jelenik meg, ha böngészési információkat kérnek. |
| source_database | sysname | Az eredeti adatbázis neve a következőben megjelenő oszlop által visszakerült. NULL értéket ad vissza, ha az adatbázis nem határozható meg. Csak akkor jelenik meg, ha böngészési információkat kérnek. |
| source_schema | sysname | Az eredeti séma nevét az oszlop adja vissza ebben az eredményben. Null értéket ad vissza, ha a séma nem határozható meg. Csak akkor jelenik meg, ha böngészési információkat kérnek. |
| forrás_tábla | sysname | Az eredeti tábla neve, amelyet az oszlop adott vissza ebben az eredményben. Nullat ad, ha a tábla nem határozható meg. Csak akkor jelenik meg, ha böngészési információkat kérnek. |
| source_column | sysname | Az eredményoszlop által visszaadott eredeti oszlop neve. NULL értéket ad vissza, ha az oszlop nem határozható meg. Csak akkor jelenik meg, ha böngészési információkat kérnek. |
| is_identity_column | bit | 1-et ad vissza, ha az oszlop identitásoszlop, és 0-ot, ha nem. Null értéket ad vissza, ha nem állapítható meg, hogy az oszlop identitásoszlop. |
| is_part_of_unique_key | bit | 1-et ad, ha az oszlop egy egyedi index része (beleértve az egyedi és elsődleges korlátokat is), és 0-et, ha nem az. Null értéket ad vissza, ha nem állapítható meg, hogy az oszlop egy egyedi index része. Csak akkor jelenik meg, ha böngészési információkat kérnek. |
| is_updateable | bit | 1-et, ha az oszlop frissíthető, 0-ot, ha nem. Null értéket ad vissza, ha nem állapítható meg, hogy az oszlop frissíthető. |
| is_computed_column | bit | 1-et, ha az oszlop kiszámított oszlop, 0-t ad, ha nem. Nullat ad vissza, ha nem lehet megállapítani, hogy az oszlop kiszámított oszlop-e. |
| is_sparse_column_set | bit | 1-et, ha az oszlop ritka oszlop, 0-et, ha nem. Null értéket ad vissza, ha nem állapítható meg, hogy az oszlop egy ritka oszlophalmazhoz tartozik. |
| ordinal_in_order_by_list | smallint | Ennek az oszlopnak a pozíciója a SORRENDBEN van. Null értéket ad vissza, ha az oszlop nem jelenik meg a ORDER BY listában, vagy ha a ORDER BY lista nem lehet egyedül meghatározható. |
| order_by_list_length | smallint | A ORDER BY lista hossza. A NULL akkor jelenik meg, ha nincs ORDER BY lista, vagy ha a ORDER BY lista nem lehet egyedül meghatározható. Fontos megjegyezni, hogy ez az érték minden sp_describe_first_result_set által visszaadott sorra ugyanaz lesz. |
| order_by_is_descending | smallint NULL | Ha a ordinal_in_order_by_list nem NULL, a order_by_is_descending oszlop jelzi ennek az oszlopnak a ORDER BY klauzdula irányát. Ellenkező esetben NULL-nak jelent. |
| error_number | int | Tartalmazza a függvény által visszaadott hibaszámot. Ha hiba nem történt, az oszlop tartalmazza a NULL-t. |
| error_severity | int | Tartalmazza a függvény által visszaadott súlyosságot. Ha hiba nem történt, az oszlop tartalmazza a NULL-t. |
| error_state | int | Tartalmazza az állapotüzenetet. a rendezvény visszaadta őket. Ha hiba nem történt, az oszlop tartalmazza a NULL-t. |
| error_message | nvarchar(4096) | Tartalmazza a függvény által visszaküldött üzenetet. Ha hiba nem történt, az oszlop tartalmazza a NULL-t. |
| error_type | int | Tartalmaz egy egész számot, amely a visszaadott hibát jelöli. Térképek error_type_desc. Lásd a listát a megjegyzések alatt. |
| error_type_desc | nvarchar(60) | Egy rövid nagybetűs stringet tartalmaz, amely a visszaadott hibát jelöli. Térképek error_type. Lásd a listát a megjegyzések alatt. |
Megjegyzések
Ez a függvény ugyanazt az algoritmust használja, mint a sp_describe_first_result_set. További információért lásd sp_describe_first_result_set (Transact-SQL).
Az alábbi táblázat felsorolja a hibatípusokat és azok leírásait
| error_type | error_type | Description |
|---|---|---|
| 1 | MISC | Minden olyan hibá, amelyet másképp nem írnak le. |
| 2 | SZINTAXIS | A batch során szintaktishiba történt. |
| 3 | CONFLICTING_RESULTS | Az eredményt nem lehetett megállapítani két lehetséges első állítás közötti ütközés miatt. |
| 4 | DYNAMIC_SQL | Az eredményt nem lehetett meghatározni a dinamikus SQL miatt, amely potenciálisan visszaadhatja az első eredményt. |
| 5 | CLR_PROCEDURE | Az eredményt nem lehetett megállapítani, mert egy CLR-en tárolt eljárás potenciálisan visszahozhatta az első eredményt. |
| 6 | CLR_TRIGGER | Az eredmény nem határozható meg, mert egy CLR trigger potenciálisan visszahozhatja az első eredményt. |
| 7 | EXTENDED_PROCEDURE | Az eredményt nem lehetett meghatározni, mert egy kiterjesztett tárolt eljárás potenciálisan visszahozhatta az első eredményt. |
| 8 | UNDECLARED_PARAMETER | Az eredmény nem határozható meg, mert az eredményhalmaz egyik vagy több oszlopának adattípusa potenciálisan függ egy kijelentetlen paramétertől. |
| 9 | REKURZIÓ | Az eredmény nem határozható meg, mert a batch tartalmaz rekurzív állítást. |
| 10 | TEMPORARY_TABLE | Az eredmény nem határozható meg, mert a batch ideiglenes táblát tartalmaz, és nem támogatja sp_describe_first_result_set . |
| 11 | UNSUPPORTED_STATEMENT | Az eredmény nem határozható meg, mert a batch tartalmaz olyan állítást, amelyet sp_describe_first_result_set nem támogat (pl. FETCH, REVERT stb.). |
| 12 | OBJECT_TYPE_NOT_SUPPORTED | A függvényhez továbbított @object_id nem támogatott (azaz nem tárolt eljárás). |
| 13 | OBJECT_DOES_NOT_EXIST | A függvényhez átadott @object_id nem található meg a rendszerkatalógusban. |
Permissions
Engedélyt igényel a @tsql érv végrehajtásához.
Példák
További példák a témában sp_describe_first_result_set (Transact-SQL ) adaptálhatók sys.dm_exec_describe_first_result_set használatára.
A. Információ egyetlen Transact-SQL állításról
A következő kód információt ad egy Transact-SQL állítás eredményeiről.
USE AdventureWorks2022;
GO
SELECT * FROM sys.dm_exec_describe_first_result_set
(N'SELECT object_id, name, type_desc FROM sys.indexes', null, 0) ;
B. Információ visszaküldése egy beavatkozásról
A következő példa egy pr_TestProc nevű tárolt eljárást hoz létre, amely két eredményhalmazt ad vissza. Ezután a példa azt mutatja, hogy sys.dm_exec_describe_first_result_set az eljárás első eredményhalmazáról adott információt.
USE AdventureWorks2022;
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. Metaadat visszaküldése egy olyan tételből, amely több állítást tartalmaz
A következő példa egy olyan tételt értékel, amely két Transact-SQL állítást tartalmaz. Az eredményhalmaz az első visszaadott eredményhalmazt írja le.
USE AdventureWorks2022;
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;
GO
Lásd még:
sp_describe_first_result_set (Transact-SQL)
sp_describe_undeclared_parameters (Transact-SQL)
sys.dm_exec_describe_first_result_set_for_object (Transact-SQL)