Aracılığıyla paylaş


@@FETCH_STATUS (Transact-SQL)

Şunlar için geçerlidir:SQL ServerAzure SQL VeritabanıAzure SQL Yönetilen ÖrneğiMicrosoft Fabric'te SQL veritabanı

Bu fonksiyon, bağlantı tarafından şu anda açık olan herhangi bir imleçte verilen son imleç FETCH ifadesinin durumunu döndürür.

Transact-SQL söz dizimi kuralları

Sözdizimi

@@FETCH_STATUS  

Dönüş Türü

integer

Dönüş Değeri

Dönüş değeri Description
 0 FETCH açıklaması başarılı oldu.
-1 FETCH ifadesi başarısız oldu ya da sıralama sonuç setinin ötesine geçti.
-2 Getirilen sıra eksik.
-9 İmleç getirme işlemi yapmıyor.

Açıklamalar

Bağlantıdaki @@FETCH_STATUS tüm imleçler için küresel olduğu için, dikkatli kullanın. Bir FETCH ifadesi çalıştırıldıktan sonra, diğer herhangi bir FETCH ifadesi başka bir imleka karşı çalıştırılmadan önce için test yapılmalıdır @@FETCH_STATUS . @@FETCH_STATUS bağlantıda herhangi bir getirme gerçekleşmeden önce tanımlanmamıştır.

Örneğin, bir kullanıcı bir imleçten bir FETCH ifadesi çalıştırır ve ardından başka bir imlecten gelen verileri açan ve işleyen bir depolanmış prosedürü çağırır. Kontrol çağrısı o depolanmış prosedürden dönerken, @@FETCH_STATUS o depolanmış prosedür içinde yapılan son FETCH ifadesini yansıtır, depolanan prosedür çağrısından önce yürütülen FETCH ifadesi değil.

Belirli bir imlecin son getirme durumunu almak için, sys.dm_exec_cursors dinamik yönetim fonksiyonunun fetch_status sütununu sorgulayın.

Örnekler

Bu örnek, bir WHILE döngüdeki imleç aktivitelerini kontrol etmek için kullanılır@@FETCH_STATUS.

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  

Ayrıca Bkz.

İmleç İşlevleri (Transact-SQL)
GETIR (Transact-SQL)