@@FETCH_STATUS (Transact-SQL)

Gäller för:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceSQL-databas i Microsoft Fabric

Denna funktion returnerar statusen för den senaste markörens FETCH-sats som utfärdades mot vilken markör som helst som för närvarande öppnats av anslutningen.

Transact-SQL syntaxkonventioner

Syntax

@@FETCH_STATUS  

Returtyp

heltal

Returvärde

Returvärde Description
 0 FETCH-uttalandet var framgångsrikt.
-1 FETCH-satsen misslyckades eller så låg raden utanför resultatuppsättningen.
-2 Den hämtade raden saknas.
-9 Markören utför ingen hämtningsoperation.

Anmärkningar

Eftersom @@FETCH_STATUS är global för alla markörer på en anslutning, använd den försiktigt. Efter att ett FETCH-uttalande har exekverats måste testet för @@FETCH_STATUS ske innan något annat FETCH-uttalande utförs mot en annan markör. @@FETCH_STATUS är odefinierad innan några hämtningar har skett på anslutningen.

Till exempel kör en användare ett FETCH-uttalande från en markör och anropar sedan en lagrad procedur som öppnar och bearbetar resultat från en annan markör. När kontrollen återvänder från den anropade lagrade progén @@FETCH_STATUS speglar den senaste FETCH som utförts i den lagrade proceduren, inte FETCH-satsen som kördes före anropet till den lagrade proceduren.

För att hämta den senaste hämtstatusen för en specifik markör, fråga i kolumnen fetch_status i den sys.dm_exec_cursors dynamiska hanteringsfunktionen.

Examples

Detta exempel används @@FETCH_STATUS för att styra marköraktiviteter i en WHILE loop.

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  

Se även

Markörfunktioner (Transact-SQL)
HÄMTA (Transact-SQL)