@@fetch_status
返回被 fetch 语句执行的最后游标的状态,而不是任何当前被连接打开的游标的状态。
返回值描述0fetch 语句成功。-1fetch 语句失败或此行不在结果集中。-2被提取的行不存在。
语法
@@fetch_status
返回类型
integer
注释
由于 @@fetch_status 对于在一个连接上的所有游标是全局性的,要小心使用 @@fetch_status 。在执行一条 fetch 语句后,必须在对另一游标执行另一 fetch 语句前测试 @@fetch_status 。在任何提取操作出现在此连接上前,@@fetch_status 的值没有定义。
例如,用户从一个游标执行一条 fetch 语句,然后调用一个存储过程,此存储过程打开并处理另一个游标的结果。当控制从被调用的存储过程返回后,@@fetch_status 反映的是在存储过程中执行的最后的 fetch 语句的结果,而不是在存储过程被调用之前的 fetch 语句的结果。
示例
下面的示例用 @@fetch_status 控制在一个 while 循环中的游标活动。
declare employee_cursor cursor forselect lastname, firstname from northwind.dbo.employeesopen employee_cursorfetch next from employee_cursorwhile @@fetch_status = 0begin fetch next from employee_cursorendclose employee_cursordeallocate employee_cursor