Delen via


@@FETCH_STATUS (Transact-SQL)

van toepassing op:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceSQL-database in Microsoft Fabric

Deze functie geeft de status terug van de laatste cursor FETCH-instructie die is uitgegeven tegen elke cursor die momenteel door de verbinding is geopend.

Transact-SQL syntaxis-conventies

Syntaxis

@@FETCH_STATUS  

Retourtype

geheel getal

Retourwaarde

Retourwaarde Description
 0 De FETCH-verklaring was succesvol.
-1 De FETCH-instructie faalde of de rij lag buiten de resultaatset.
-2 De opgehaalde rij ontbreekt.
-9 De cursor voert geen ophaaloperatie uit.

Opmerkingen

Omdat @@FETCH_STATUS globaal is voor alle cursors op een verbinding, gebruik het zorgvuldig. Nadat een FETCH-instructie is uitgevoerd, moet de test voor @@FETCH_STATUS plaatsvinden voordat een andere FETCH-instructie wordt uitgevoerd tegen een andere cursor. @@FETCH_STATUS is ongedefinieerd voordat er enige fetches op de verbinding hebben plaatsgevonden.

Bijvoorbeeld, een gebruiker voert een FETCH-instructie uit vanaf één cursor en roept vervolgens een opgeslagen procedure aan die resultaten opent en verwerkt van een andere cursor. Wanneer de controle terugkeert van die aangeroepen opgeslagen procedure, @@FETCH_STATUS weerspiegelt dit de laatste FETCH die binnen die opgeslagen procedure is uitgevoerd, niet de FETCH-instructie die vóór de aanroep naar de opgeslagen procedure is uitgevoerd.

Om de laatste ophaalstatus van een specifieke cursor op te halen, raadpleeg je de fetch_status kolom van de sys.dm_exec_cursors dynamische beheerfunctie.

Voorbeelden

Dit voorbeeld wordt gebruikt @@FETCH_STATUS om cursoractiviteiten in een WHILE lus te regelen.

DECLARE Employee_Cursor CURSOR FOR  
SELECT BusinessEntityID, JobTitle  
FROM AdventureWorks2022.HumanResources.Employee;  
OPEN Employee_Cursor;  
FETCH NEXT FROM Employee_Cursor;  
WHILE @@FETCH_STATUS = 0  
   BEGIN  
      FETCH NEXT FROM Employee_Cursor;  
   END;  
CLOSE Employee_Cursor;  
DEALLOCATE Employee_Cursor;  
GO  

Zie ook

Cursorfuncties (Transact-SQL)
APPORTEREN (Transact-SQL)