Aracılığıyla paylaş


@@ fetch_status (Transact-sql)

Son verilen karşı şu anda bağlantı tarafından açılmış herhangi bir imleç GETIRME deyimi imleç durumu döndürür.

Konu bağlantısı simgesi Transact-SQL Sözdizim Kuralları

Sözdizimi

@@FETCH_STATUS

Dönüş Türü

tamsayı

Dönüş Değeri

Dönüş değeri

Açıklama

0

GETIRME deyimi başarılı oldu.

-1

GETIRME deyimi başarısız oldu veya satır sonuç kümesi oldu.

-2

Getirilen satır eksik.

Açıklamalar

@@ fetch_status küresel bir bağlantı tüm imleçler için olduğundan, @@ fetch_status dikkatle kullanın. Başka bir imleç karşı diğer GETIRME deyimi yürütülmeden önce sonra GETIRME deyimi, testi için @@ fetch_status gerçekleşmelidir yürütülür. Önce herhangi bir fetches bağlantının oluşmuş @@ fetch_status değeri tanımlı değil.

Örneğin, bir kullanıcı bir imleç GETIRME deyimi yürütür ve sonra açan ve başka bir imleç sonuçları işleyen bir saklı yordam çağrıları. Denetim denilen saklı yordam, @@ fetch_status döndürüldüğünde, saklı yordam, saklı yordam çağrısından önce idam GETIRME deyimi değil idam son getirme yansıtır.

Belirli bir imleç son getirme durumunu almak için sorgu fetch_status sütununda sys.dm_exec_cursors dinamik yönetimi işlevi.

Örnekler

Aşağıdaki örnek @@FETCH_STATUSDenetim imleç faaliyetleri için bir WHILEdöngü.

DECLARE Employee_Cursor CURSOR FOR
SELECT BusinessEntityID, JobTitle
FROM AdventureWorks2012.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

DECLARE Employee_Cursor CURSOR FOR
SELECT BusinessEntityID, JobTitle
FROM AdventureWorks2012.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.

Başvuru

Imleç işlevler (Transact-sql)

fetch (Transact-sql)