Not
Åtkomst till denna sida kräver auktorisation. Du kan prova att logga in eller byta katalog.
Åtkomst till denna sida kräver auktorisation. Du kan prova att byta katalog.
Gäller för:SQL Server
Azure SQL Database
Azure SQL Managed Instance
SQL-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