Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op:SQL Server
Rapporteert de attributen van de kolommen in de resultaatset van een servercursor.
Transact-SQL syntaxis-conventies
Syntax
sys.sp_describe_cursor_columns
[ @cursor_return = ] cursor_return OUTPUT
, [ @cursor_source = ] { N'local' | N'global' | N'*cursor_source*' }
, [ @cursor_identity = ] N'cursor_identity'
[ ; ]
Arguments
[ @cursor_return = ] cursor_return OUTPUT
De naam van een gedeclareerde cursorvariabele om de cursoroutput te ontvangen.
@cursor_return is een OUTPUT parameter van type int, zonder standaard, en mag niet gekoppeld zijn aan cursors op het moment sp_describe_cursor_columns dat wordt aangeroepen. De cursor die wordt teruggegeven is een scrollbare, dynamische, alleen-lezen cursor.
[ @cursor_source = ] { N'local' | N'global' | N'cursor_source' }
Specificeert of de cursor die wordt gerapporteerd wordt gespecificeerd, door gebruik te maken van de naam van een lokale cursor, een globale cursor of een cursorvariabele. @cursor_source is nvarchar(30), zonder standaard.
[ @cursor_identity = ] N'cursor_identity'
De naam van een cursor die wordt gemaakt door een DECLARE CURSOR statement.
@cursor_identity is nvarchar(128), zonder standaard.
Als cursor het
LOCALsleutelwoord heeft, of standaard is ingesteld opLOCAL, @cursor_identity islocal.Als cursor het
GLOBALsleutelwoord heeft, of standaard is ingesteld opGLOBAL, @cursor_identity isglobal. @cursor_identity kan ook de naam zijn van een API-servercursor die wordt geopend door een ODBC-applicatie, en vervolgens benoemd door aan te roepenSQLSetCursorName.Anders is @cursor_identity de naam van een cursorvariabele die aan een open cursor is gekoppeld.
Codewaarden retourneren
None.
Cursors keerden terug
sp_describe_cursor_columns kapselt zijn rapport als een Transact-SQL cursor outputparameter. Dit stelt Transact-SQL batches, opgeslagen procedures en triggers in staat om met de output één rij tegelijk te werken. Dit betekent ook dat de procedure niet direct vanuit database-API-functies kan worden aangeroepen. De cursor outputparameter moet gebonden zijn aan een programmavariabele, maar de database-API's ondersteunen geen bindingsparameters cursor of variabelen.
De volgende tabel toont het formaat van de cursor die wordt teruggegeven door gebruik te maken van sp_describe_cursor_columns.
| Kolomnaam | Gegevenstype | Description |
|---|---|---|
column_name |
sysname | Naam toegewezen aan de kolom van de resultaatset. De kolom is NULL als de kolom is gespecificeerd zonder een bijbehorende AS clausule.Nullable. |
ordinal_position |
int | Relatieve positie van de kolom vanaf de meest linkse kolom in de resultaatset. De eerste kolom bevindt zich op positie 0. |
column_characteristics_flags |
int | Een bitmasker dat de informatie aangeeft die in DBCOLUMNFLAGS OLE DB is opgeslagen. Kan één of een combinatie zijn van de volgende waarden:1 = Bladwijzer2 = Vaste lengte4 = Ongeldig8 = Rijversiebeheer16 = Updateerbare kolom (ingesteld voor geprojecteerde kolommen van een cursor zonder FOR UPDATE clausule en, als er zo'n kolom is, kan er per cursor slechts één zijn).Wanneer bitwaarden worden gecombineerd, gelden de eigenschappen van de gecombineerde bitwaarden. Bijvoorbeeld, als de bitwaarde is 6, is de kolom een kolom met vaste lengte (2), nul (4) kolom. |
column_size |
int | Maximaal mogelijke grootte voor een waarde in deze kolom. |
data_type_sql |
smallint | Nummer dat het SQL Server-datatype van de kolom aangeeft. |
column_precision |
tinyint | Maximale precisie van de kolom volgens de bPrecision waarde in OLE DB. |
column_scale |
tinyint | Aantal cijfers rechts van het decimale punt voor de numerieke of decimale datatypes volgens de bScale waarde in OLE DB. |
order_position |
int | Als de kolom deelneemt aan de ordening van de resultaatset, is de positie van de kolom in de ordesleutel ten opzichte van de meest linkse kolom. |
order_direction |
Varchar(1) |
A = De kolom staat in de ordensleutel en de volgorde is stijgend.D = De kolom staat in de order-key en de volgorde daalt.NULL = De kolom neemt niet deel aan het ordenen.Nullable. |
hidden_column |
smallint |
0 = Deze kolom verschijnt in de select-lijst.1 = Gereserveerd voor toekomstig gebruik. |
columnid |
int | Kolom-ID van de basiskolom. Als de kolom van de resultaatverzameling is opgebouwd uit een expressie, columnid is -1. |
objectid |
int | Object-ID van het object of de basistabel die de kolom levert. Als de kolom van de resultaatverzameling is opgebouwd uit een expressie, objectid is -1. |
dbid |
int | ID van de database die de basistabel bevat die de kolom levert. Als de kolom van de resultaatverzameling is opgebouwd uit een expressie, dbid is -1. |
dbname |
sysname | Naam van de database die de basistabel bevat die de kolom levert. Als de kolom van de resultaatset is opgebouwd uit een expressie, is NULLdbname .Nullable. |
Remarks
sp_describe_cursor_columns beschrijft de attributen van de kolommen in de resultaatset van een servercursor, zoals de naam en het datatype van elke cursor. Gebruik sp_describe_cursor voor een beschrijving van de globale attributen van de servercursor. Gebruik sp_describe_cursor_tables dit voor een rapport van de basistabellen waarnaar de cursor verwijst. Om een rapport te verkrijgen van de Transact-SQL servercursors die zichtbaar zijn op de verbinding, gebruik sp_cursor_listje .
Permissions
Vereist lidmaatschap van de openbare rol.
Examples
Het volgende voorbeeld opent een globale cursor en gebruikt sp_describe_cursor_columns deze om te rapporteren over de kolommen die in de cursor worden gebruikt.
USE AdventureWorks2022;
GO
-- Declare and open a global cursor.
DECLARE abc CURSOR KEYSET
FOR SELECT LastName
FROM Person.Person;
GO
OPEN abc;
-- Declare a cursor variable to hold the cursor output variable
-- from sp_describe_cursor_columns.
DECLARE @Report AS CURSOR;
-- Execute sp_describe_cursor_columns into the cursor variable.
EXECUTE master.dbo.sp_describe_cursor_columns
@cursor_return = @Report OUTPUT,
@cursor_source = N'global',
@cursor_identity = N'abc';
-- Fetch all the rows from the sp_describe_cursor_columns output cursor.
FETCH NEXT FROM @Report;
WHILE (@@FETCH_STATUS <> -1)
BEGIN
FETCH NEXT FROM @Report;
END
-- Close and deallocate the cursor from sp_describe_cursor_columns.
CLOSE @Report;
DEALLOCATE @Report;
GO
-- Close and deallocate the original cursor.
CLOSE abc;
DEALLOCATE abc;
GO