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 objecten of basistabellen waarnaar wordt verwezen door een servercursor.
Transact-SQL syntaxis-conventies
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 OUTPUT
De naam van een gedeclareerde cursorvariabele om de cursoroutput te ontvangen.
@cursor_return is een OUTPUTcursor zonder standaard, en mag niet gekoppeld zijn aan cursors op het moment sp_describe_cursor_tables 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 waarop 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'
Wanneer @cursor_source is local, @cursor_identity is de naam van een cursor die wordt gemaakt door een DECLARE CURSOR instructie die ofwel het LOCAL trefwoord heeft, of die standaard op LOCAL.
Wanneer @cursor_source is global, @cursor_identity is de naam van een cursor die wordt gemaakt door een DECLARE CURSOR instructie die ofwel het GLOBAL trefwoord heeft, of die standaard op GLOBAL.
@cursor_identity kan ook de naam zijn van een API-servercursor die wordt geopend door een ODBC-applicatie die vervolgens de cursor benoemt door aan te roepen SQLSetCursorName.
Wanneer @cursor_source is variable, is @cursor_identity de naam van een cursorvariabele die aan een open cursor is gekoppeld.
@cursor_identity is nvarchar(128), zonder standaard.
Codewaarden retourneren
None.
Cursors keerden terug
sp_describe_cursor_tableskapselt zijn rapport als een Transact-SQL cursor-uitvoerparameter. 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 API-functies kan worden aangeroepen. De cursor-uitvoerparameter moet aan een programmavariabele worden gekoppeld, maar de API's ondersteunen geen bindcursorparameters of -variabelen.
De volgende tabel toont het formaat van de cursor die wordt teruggegeven door sp_describe_cursor_tables.
| Kolomnaam | Gegevenstype | Description |
|---|---|---|
table_owner |
sysname | Gebruikers-ID van de tabel-eigenaar. |
table_name |
sysname | Naam van het object of de basistabel. In SQL Server geven servercursors altijd het door de gebruiker opgegeven object terug, niet de basistabellen. |
optimizer_hint |
smallint | Bitmap die bestaat uit een of meer van de volgende opties: 1 = Rij-niveau vergrendeling ( ROWLOCK)4 = Pagina-niveau vergrendeling ( PAGELOCK)8 = Tabel slot ( TABLOCK)16 = Exclusieve tafelvergrendeling ( TABLOCKX)32 = Update-lock ( UPDLOCK)64 = Geen slot ( NOLOCK)128 = Snelle optie op de eerste rij ( FASTFIRST)4096 = Lees herhaalbare semantische taal wanneer gebruikt met DECLARE CURSOR (HOLDLOCK)Wanneer meerdere opties worden aangeboden, gebruikt het systeem de meest beperkende. Toont echter sp_describe_cursor_tables de vlaggen die in de query zijn gespecificeerd. |
lock_type |
smallint | Scroll-lock type wordt expliciet of impliciet gevraagd voor elke basistabel die deze cursor onderligt. De waarde kan een van de volgende opties zijn: 0 = Geen 1 = Gedeeld 3 = Update |
server_name |
Systeemnaam, nul | Naam van de gekoppelde server waarop de tafel staat.
NULL wanneer OPENQUERY of OPENROWSET worden gebruikt. |
objectid |
int | Object-ID van de tabel. 0 wanneer OPENQUERY of OPENROWSET worden gebruikt. |
dbid |
int | ID van de database waarin de tabel staat. 0 wanneer OPENQUERY of OPENROWSET worden gebruikt. |
dbname |
Systeemnaam, nul | Naam van de database waarin de tabel zich bevindt.
NULL wanneer OPENQUERY of OPENROWSET worden gebruikt. |
Remarks
sp_describe_cursor_tables beschrijft de basistabellen waarnaar wordt verwezen door een servercursor. Voor een beschrijving van de attributen van de resultaatset die door de cursor wordt teruggegeven, gebruik sp_describe_cursor_columns. Voor een beschrijving van de globale kenmerken van de cursor, zoals de scrollbaarheid en updatebaarheid, gebruik sp_describe_cursor. 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_tables het om te rapporteren op de tabellen waarnaar de cursor verwijst.
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