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 servermarkörer som för närvarande är öppna för anslutningen.
Transact-SQL syntaxkonventioner
Syntax
sys.sp_cursor_list
[ @cursor_return = ] cursor_return OUTPUT
, [ @cursor_scope = ] cursor_scope
[ ; ]
Arguments
[ @cursor_return = ] cursor_return UTGÅNG
Namnet på en deklarerad markörvariabel.
@cursor_return är en OUTPUT parameter av typen CURSOR. Markören är en rullbar, dynamisk, skrivskyddad markör.
[ @cursor_scope = ] cursor_scope
Specificerar nivån på markörer som ska rapporteras. @cursor_scope är int, utan standard, och kan vara ett av dessa värden.
| Value | Description |
|---|---|
1 |
Rapportera alla lokala markörer. |
2 |
Rapportera alla globala kursorer. |
3 |
Rapportera både lokala och globala markörer. |
Returnera kodvärden
None.
Markörer återvände
sp_cursor_list returnerar sin rapport som en Transact-SQL markörens utgångsparameter, inte som en resultatuppsättning. Detta gör att Transact-SQL batcher, lagrade procedurer och triggers kan arbeta med utdata en rad i taget. Det innebär också att proceduren inte kan anropas direkt från databas-API-funktioner. Markörens utgångsparameter måste vara bunden till en programvariabel, men databasens API:er stöder inte bindning av markörparametrar eller variabler.
Detta är formatet för markören som returneras av sp_cursor_list. Formatet på markören är detsamma som formatet som returneras av sp_describe_cursor.
| Kolumnnamn | Datatyp | Description |
|---|---|---|
reference_name |
sysname | Namnet som användes för att syfta på markören. Om referensen till markören gick via namnet som anges i ett DECLARE CURSOR uttalande, är referensnamnet samma som markörens namn. Om referensen till markören gick via en variabel, är referensnamnet namnet på markörvariabeln. |
cursor_name |
sysname | Namnet på markören från ett DECLARE CURSOR påstående. I SQL Server, om markören skapades genom att sätta en markörvariabel till en markörcursor_name, returneras namnet på markörvariabeln. I tidigare versioner returnerar denna utdatakolumn ett systemgenererat namn. |
cursor_scope |
smallint | 1 = LOCAL2 = GLOBAL |
status |
smallint | Samma värden som rapporteras CURSOR_STATUS av systemfunktionen:1 = Markören som refereras till av markörnamnet eller variabeln är öppen. Om markören är okänslig, statisk eller med tangenter är det minst en rad. Om markören är dynamisk har resultatmängden noll eller fler rader.0 = Markören som refereras till med markörens namn eller variabel är öppen men har inga rader. Dynamiska markörer returnerar aldrig detta värde.-1 = Markören som refereras till av markörnamnet eller variabeln är stängd.-2 = Gäller endast för markörvariabler. Det finns ingen markör tilldelad variabeln. Möjligen OUTPUT en parameter tilldelade en markör till variabeln, men den lagrade proceduren stängde markören innan den återvände.-3 = En markör eller markörvariabel med det angivna namnet existerar inte, eller så har markörvariabeln ingen markör tilldelad. |
model |
smallint |
1 = Okänslig (eller statisk)2 = Tangentuppsättning3 = Dynamisk4 = Spola fram |
concurrency |
smallint |
1 = Skrivskyddat2 = Scrolllås3 = Optimistisk |
scrollable |
smallint |
0 = Endast framåt1 = Rullbart |
open_status |
smallint |
0 = Stängd1 = Öppet |
cursor_rows |
int | Antalet kvalificeringsrader i resultatuppsättningen. För mer information, se @@CURSOR_ROWS. |
fetch_status |
smallint | Status för den sista hämtningen på denna markör. För mer information, se @@FETCH_STATUS:0 = Hämtan lyckades.-1 = Hämtningen misslyckades eller ligger utanför markörens gränser.-2 = Den begärda raden saknas.-9 = Det har inte gjorts någon hämtning på markören. |
column_count |
smallint | Antalet kolumner i markörresultatet. |
row_count |
smallint | Antalet rader som påverkas av den senaste operationen på markören. För mer information, se @@ROWCOUNT. |
last_operation |
smallint | Den sista operationen som utfördes på markören:0 = Inga operationer utfördes på markören.1 = OPEN2 = FETCH3 = INSERT4 = UPDATE5 = DELETE6 = CLOSE7 = DEALLOCATE |
cursor_handle |
int | Ett unikt värde som identifierar markören inom serverns omfattning. |
Remarks
sp_cursor_list producerar en lista över de aktuella servermarkörerna som öppnas av anslutningen och beskriver de globala attributen för varje markör, såsom rullbarhet och uppdateringsbarhet för markören. De markörer som listas av sp_cursor_list inkluderar:
Transact-SQL servermarkörer.
API-servermarkörer öppnas av en ODBC-applikation som sedan anropas
SQLSetCursorNameför att namnge markören.
Använd sp_describe_cursor_columns för en beskrivning av attributen i resultatuppsättningen som returneras av markören. Använd sp_describe_cursor_tables för en rapport över bastabellerna som pekaren refererar till.
sp_describe_cursor rapporterar samma information som sp_cursor_list, men endast för en specificerad markör.
Permissions
Exekveringsbehörigheter är som standard den publika rollen.
Examples
Följande exempel öppnar en global markör och används sp_cursor_list för att rapportera om markörens attribut.
USE AdventureWorks2022;
GO
-- Declare and open a keyset-driven cursor.
DECLARE abc CURSOR KEYSET
FOR SELECT LastName
FROM Person.Person
WHERE LastName LIKE 'S%';
OPEN abc;
-- Declare a cursor variable to hold the cursor output variable
-- from sp_cursor_list.
DECLARE @Report AS CURSOR;
-- Execute sp_cursor_list into the cursor variable.
EXECUTE master.dbo.sp_cursor_list
@cursor_return = @Report OUTPUT,
@cursor_scope = 2;
-- Fetch all the rows from the sp_cursor_list output cursor.
FETCH NEXT FROM @Report;
WHILE (@@FETCH_STATUS <> -1)
BEGIN
FETCH NEXT FROM @Report;
END
-- Close and deallocate the cursor from sp_cursor_list.
CLOSE @Report;
DEALLOCATE @Report;
GO
-- Close and deallocate the original cursor.
CLOSE abc;
DEALLOCATE abc;
GO