Kommentar
Å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
Rapporterar attributen för kolumnerna i resultatuppsättningen för en servermarkör.
Transact-SQL syntaxkonventioner
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 UTGÅNG
Namnet på en deklarerad markörvariabel för att ta emot markörens utdata.
@cursor_return är en OUTPUT parameter av typen int, utan standard, och får inte vara kopplad till några markörer när sp_describe_cursor_columns den anropas. Markören som returneras är en rullbar, dynamisk, skrivskyddad markör.
[ @cursor_source = ] { N'local' | N'global' | N'cursor_source' }
Specificerar om markören som rapporteras anges genom att använda namnet på en lokal markör, en global markör eller en markörvariabel. @cursor_source är nvarchar(30), utan standard.
[ @cursor_identity = ] N'cursor_identity'
Namnet på en markör skapas av ett DECLARE CURSOR uttalande.
@cursor_identity är nvarchar(128), utan standard.
Om markören har
LOCALnyckelordet, eller är standardinställd påLOCAL, är @cursor_identity .localOm markören har
GLOBALnyckelordet, eller är standardinställd påGLOBAL, är @cursor_identity .global@cursor_identity kan också vara namnet på en API-serverpekare som öppnas av en ODBC-applikation och sedan namnges genom att anropaSQLSetCursorName.Annars är @cursor_identity namnet på en markörvariabel kopplad till en öppen markör.
Returnera kodvärden
None.
Markörer återvände
sp_describe_cursor_columns kapslar in sin rapport som en Transact-SQL cursor utgångsparameter. Detta möjliggör att Transact-SQL batcher, lagrade procedurer och triggers kan arbeta med utdata en rad i taget. Detta innebär också att proceduren inte kan anropas direkt från databas-API-funktioner. Utdataparametern cursor måste vara bunden till en programvariabel, men databas-API:erna stöder inte bindningsparametrar cursor eller variabler.
Följande tabell visar formatet på markören som returneras genom att använda sp_describe_cursor_columns.
| Kolumnnamn | Datatyp | Description |
|---|---|---|
column_name |
sysname | Namn tilldelat resultatuppsättningen. Kolumnen är NULL om kolumnen specificerades utan en tillhörande AS klausul.Nullable. |
ordinal_position |
int | Relativ position för kolumnen från den vänstra kolumnen i resultatmängden. Den första kolumnen är på plats 0. |
column_characteristics_flags |
int | En bitmask som anger informationen som lagras i DBCOLUMNFLAGS OLE DB. Kan vara ett eller en kombination av följande värden:1 = Bokmärke2 = Fast längd4 = Nullbar8 = Radversionering16 = Uppdaterbar kolumn (satt för projicerade kolumner i en markör som inte är en FOR UPDATE klausul och, om det finns en sådan kolumn, kan bara vara en per markör).När bitvärden kombineras gäller egenskaperna hos de kombinerade bitvärdena. Till exempel, om bitvärdet är 6, är kolumnen en kolumn med fast längd (2), nullbar (4) kolumn. |
column_size |
int | Maximal möjlig storlek för ett värde i denna kolumn. |
data_type_sql |
smallint | Nummer som anger SQL Server-datatypen för kolumnen. |
column_precision |
pytteliten | Maximal precision för kolumnen enligt bPrecision värdet i OLE DB. |
column_scale |
pytteliten | Antal siffror till höger om decimalpunkten för de numeriska eller decimala datatyperna enligt bScale värdet i OLE DB. |
order_position |
int | Om kolumnen deltar i ordningen av resultatmängden, är kolumnens position i ordningsnyckeln relativt den vänstra kolumnen. |
order_direction |
varchar(1) |
A = Kolumnen är i ordningsnyckeln och ordningen stiger.D = Kolumnen är i ordningsnyckeln och ordningen är nedåtgående.NULL = Kolumnen deltar inte i ordningen.Nullable. |
hidden_column |
smallint |
0 = denna kolumn visas i select-listan.1 = Reserverad för framtida bruk. |
columnid |
int | Kolumn-ID för baskolumnen. Om resultatmängdskolumnen byggdes från ett uttryck, columnid är -1. |
objectid |
int | Objekt-ID för objektet eller bastabellen som tillhandahåller kolumnen. Om resultatmängdskolumnen byggdes från ett uttryck, objectid är -1. |
dbid |
int | ID för databasen som innehåller bastabellen som tillhandahåller kolumnen. Om resultatmängdskolumnen byggdes från ett uttryck, dbid är -1. |
dbname |
sysname | Namnet på databasen som innehåller bastabellen som tillhandahåller kolumnen. Om resultatmängdskolumnen byggdes från ett uttryck är NULLdbname .Nullable. |
Remarks
sp_describe_cursor_columns beskriver attributen för kolumnerna i resultatuppsättningen för en servermarkör, såsom namnet och datatypen för varje markör. Använd sp_describe_cursor för en beskrivning av de globala attributen för servermarkören. Använd sp_describe_cursor_tables för en rapport över bastabellerna som pekaren refererar till. För att få en rapport över de Transact-SQL servermarkörerna som är synliga på anslutningen, använd sp_cursor_list.
Permissions
Kräver medlemskap i offentlig roll.
Examples
Följande exempel öppnar en global markör och används sp_describe_cursor_columns för att rapportera kolumnerna som används i markören.
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