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 objekt eller bastabeller som refereras av en servermarkör.
Transact-SQL syntaxkonventioner
Syntax
sys.sp_describe_cursor_tables
[ @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 OUTPUTmarkör utan standard och får inte kopplas till några markörer när sp_describe_cursor_tables den anropade tidpunkten. 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'
När @cursor_source är local, @cursor_identity är namnet på en markör skapad av en DECLARE CURSOR sats som antingen har LOCAL nyckelordet, eller som som standard är LOCAL.
När @cursor_source är global, @cursor_identity är namnet på en markör skapad av en DECLARE CURSOR sats som antingen har GLOBAL nyckelordet, eller som som standard är GLOBAL.
@cursor_identity kan också vara namnet på en API-serverpekare som öppnas av en ODBC-applikation som sedan namngav markören genom att anropa SQLSetCursorName.
När @cursor_source är variable, är @cursor_identity namnet på en markörvariabel kopplad till en öppen markör.
@cursor_identity är nvarchar(128), utan standard.
Returnera kodvärden
None.
Markörer återvände
sp_describe_cursor_tables kapslar in sin rapport som en Transact-SQL markörutgå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 API-funktioner.
Markörens utgångsparameter måste vara bunden till en programvariabel, men API:erna stöder inte bindningsparametrar eller variabler.
Följande tabell visar formatet på markören som returneras av sp_describe_cursor_tables.
| Kolumnnamn | Datatyp | Description |
|---|---|---|
table_owner |
sysname | Användar-ID för tabellägaren. |
table_name |
sysname | Namnet på objektet eller bastabellen. I SQL Server returnerar servermarkörer alltid det användarspecificerade objektet, inte bastabellerna. |
optimizer_hint |
smallint | Bitmap som består av ett eller flera av följande alternativ: 1 = Låsning på radnivå ( ROWLOCK)4 = Sidnivålåsning ( PAGELOCK)8 = Tabelllås ( TABLOCK)16 = Exklusivt tabelllock ( TABLOCKX)32 = Uppdateringslås ( UPDLOCK)64 = Ingen låsning ( NOLOCK)128 = Snabb första rad-alternativ ( FASTFIRST)4096 = Läs upprepbar semantisk när den används med DECLARE CURSOR (HOLDLOCK)När flera alternativ tillhandahålls använder systemet det mest restriktiva. Dock sp_describe_cursor_tables visas flaggorna som anges i frågan. |
lock_type |
smallint | Scroll-lock-typen begärs antingen explicit eller implicit för varje bastabell som ligger under denna markör. Värdet kan vara ett av följande alternativ: 0 = Inga 1 = Delad 3 = Uppdatering |
server_name |
sysname, nullbar | Namnet på den länkade servern där bordet finns.
NULL när OPENQUERY eller OPENROWSET används. |
objectid |
int | Objekt-ID för tabellen. 0 när OPENQUERY eller OPENROWSET används. |
dbid |
int | ID för databasen där tabellen finns. 0 när OPENQUERY eller OPENROWSET används. |
dbname |
sysname, nullbar | Namnet på databasen där tabellen finns.
NULL när OPENQUERY eller OPENROWSET används. |
Remarks
sp_describe_cursor_tables beskriver bastabellerna som refereras av en servermarkör. För en beskrivning av attributen för resultatmängden som returneras av markören, använd sp_describe_cursor_columns. För en beskrivning av markörens globala egenskaper, såsom dess scrollbarhet och uppdateringsbarhet, använd sp_describe_cursor. För att få en rapport över de Transact-SQL servermarkörer 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_tables för att rapportera tabellerna som pekaren refererar till.
USE AdventureWorks2022;
GO
-- Declare and open a global cursor.
DECLARE abc CURSOR KEYSET
FOR SELECT LastName
FROM Person.Person
WHERE LastName LIKE 'S%';
OPEN abc;
GO
-- Declare a cursor variable to hold the cursor output variable
-- from sp_describe_cursor_tables.
DECLARE @Report AS CURSOR;
-- Execute sp_describe_cursor_tables into the cursor variable.
EXECUTE master.dbo.sp_describe_cursor_tables
@cursor_return = @Report OUTPUT,
@cursor_source = N'global',
@cursor_identity = N'abc';
-- Fetch all the rows from the sp_describe_cursor_tables 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_tables.
CLOSE @Report;
DEALLOCATE @Report;
GO
-- Close and deallocate the original cursor.
CLOSE abc;
DEALLOCATE abc;
GO