Sdílet prostřednictvím


@@FETCH_STATUS (Transact-SQL)

platí pro:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceSQL databáze v Microsoft Fabric

Tato funkce vrací stav posledního příkazu kurzoru FETCH vydaného vůči jakémukoli kurzoru právě otevřenému spojením.

Transact-SQL konvence syntaxe

Syntaxe

@@FETCH_STATUS  

Návratový typ

integer

Návratová hodnota

Návratová hodnota Description
 0 Příkaz FETCH byl úspěšný.
-1 Příkaz FETCH selhal nebo byl řádek za sadou výsledků.
-2 Chybí požadovaná řada.
-9 Kurzor neprovádí operaci načítaní.

Poznámky

Protože @@FETCH_STATUS je globální pro všechny kurzory na spojení, používejte ho opatrně. Po vykonání příkazu FETCH musí test pro @@FETCH_STATUS proběhnout před tím, než se jakýkoli jiný příkaz FETCH spustí proti jinému kurzoru. @@FETCH_STATUS není definována dříve, než na spojení proběhnou jakékoliv fetche.

Například uživatel vykoná příkaz FETCH z jednoho kurzoru a poté zavolá uloženou proceduru, která se otevře a zpracuje výsledky z jiného kurzoru. Když řízení vrátí z volané uložené procedury, @@FETCH_STATUS odráží poslední FETCH provedený uvnitř této uložené procedury, nikoli příkaz FETCH vykonaný před voláním uložené procedury.

Pro získání posledního stavu načtení konkrétního kurzoru se dotazujte na sloupec fetch_status funkce dynamické správy sys.dm_exec_cursors .

Examples

Tento příklad slouží k @@FETCH_STATUS ovládání aktivit kurzoru v cyklu WHILE .

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  

Viz také

Funkce kurzoru (Transact-SQL)
APORTUJ (Transact-SQL)