Megosztás a következőn keresztül:


@@FETCH_STATUS (Transact-SQL)

A következőkre vonatkozik:SQL ServerAzure SQL DatabaseFelügyelt Azure SQL-példánySQL-adatbázis a Microsoft Fabricben

Ez a függvény visszaadja az utolsó kurzor FETCH kijelentésének státuszát, amelyet bármely a kapcsolat által nyitott kurzorhoz adott ki.

Transact-SQL szintaxis konvenciók

Szemantika

@@FETCH_STATUS  

Visszatérési típus

egész szám

Visszaadott érték

Visszaadott érték Description
 0 A FETCH nyilatkozat sikeres volt.
-1 A FETCH kijelentés meghibásodott, vagy a sor túlmutatott az eredményhalmazon.
-2 A lehozott sor hiányzik.
-9 A kurzor nem hajt végre behozási műveletet.

Megjegyzések

Mivel @@FETCH_STATUS globális, minden kurzor számára egy kapcsolaton, használd óvatosan. Egy FETCH utasítás végrehajtása után a tesztnek @@FETCH_STATUS meg kell történnie, mielőtt bármely más FETCH utasítás egy másik kurzor ellen végrehajtható. @@FETCH_STATUS nem definiált, mielőtt bármilyen hívás történt volna a kapcsolaton.

Például egy felhasználó egy FETCH utasítást futtat egy kurzorból, majd meghív egy tárolt eljárást, amely megnyitja és feldolgozza az eredményt egy másik kurzorból. Amikor a vezérlő visszatér az adott tárolt eljárásból, @@FETCH_STATUS az az utolsó FETCH utasítást mutatja be, amely az adott tárolt eljárásban végrehajtott, nem pedig a tárolt eljárás hívása előtt végrehajtott FETCH utasítást.

Egy adott kurzor utolsó fetch státuszának megkereséséhez lekérdezzük a sys.dm_exec_cursors dinamikus menedzsment függvény fetch_status oszlopát.

Példák

Ez a példa @@FETCH_STATUS a kurzor műveletek vezérlésére szolgál egy WHILE ciklusban.

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  

Lásd még:

Kurzorfüggvények (Transact-SQL)
HOZNI (Transact-SQL)