返回被 FETCH 語句執(zhí)行的最后游標(biāo)的狀態(tài),而不是任何當(dāng)前被連接打開的游標(biāo)的狀態(tài)。
返回值 | 描述 |
---|---|
0 | FETCH 語句成功。 |
-1 | FETCH 語句失敗或此行不在結(jié)果集中。 |
-2 | 被提取的行不存在。 |
@@FETCH_STATUS
integer
由于 @@FETCH_STATUS 對(duì)于在一個(gè)連接上的所有游標(biāo)是全局性的,要小心使用 @@FETCH_STATUS 。在執(zhí)行一條 FETCH 語句后,必須在對(duì)另一游標(biāo)執(zhí)行另一 FETCH 語句前測試 @@FETCH_STATUS 。在任何提取操作出現(xiàn)在此連接上前,@@FETCH_STATUS 的值沒有定義。
例如,用戶從一個(gè)游標(biāo)執(zhí)行一條 FETCH 語句,然后調(diào)用一個(gè)存儲(chǔ)過程,此存儲(chǔ)過程打開并處理另一個(gè)游標(biāo)的結(jié)果。當(dāng)控制從被調(diào)用的存儲(chǔ)過程返回后,@@FETCH_STATUS 反映的是在存儲(chǔ)過程中執(zhí)行的最后的 FETCH 語句的結(jié)果,而不是在存儲(chǔ)過程被調(diào)用之前的 FETCH 語句的結(jié)果。
下面的示例用 @@FETCH_STATUS 控制在一個(gè) WHILE 循環(huán)中的游標(biāo)活動(dòng)。
DECLARE Employee_Cursor CURSOR FOR
SELECT LastName, FirstName FROM Northwind.dbo.Employees
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
相關(guān)文章