@@ 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.
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