存储过程中游标的使用

1. 声明游标

声明一个游标,使游标指针的位置指向该表的首行(在这里首先可以理解为 指向表头)
DECLARE LisCursor CURSOR for select ID, isnull(ltrim(rtrim(PID)),''), ltrim(rtrim(Name)), isnull(rtrim(ltrim(Age)),'') from HisServer

2.打开游标

OPEN LisCursor

3.使用游标的同时给变量赋值

FETCH NEXT FROM LisCursor 这段代码表示游标已经向下移动了一个位置,该段代码通常与 WHILE @@FETCH_STATUS = 0 配合着一块使用
FETCH NEXT FROM LisCursor into @ID, @PID , @Name , @Age
存储过程中游标的使用

4.获取游标指针位置

@@FETCH_STATUS 值的改变是通过fetch next from实现的 “FETCH NEXT FROM Cursor”为0的时候,表示游标指针指向的那一条记录是有数据的,然后游标就会将查询到的数据直接存入游标捕捉数据的变量中。
WHILE @@FETCH_STATUS=0
作用:Sql中的游标指针的位置判断。代表游标读取下一条数据是否成功!FETCH_STATUS状态有三种:
0, FETCH 语句成功   
-1, FETCH 语句失败或此行不在结果集中   
-2, 被提取的行不存在  
WHILE @@FETCH_STATUS = 0

5.遍历游标

只要游标遍历的表中有结果就会一起遍历下去,直到@@FETCH_STATUS 不为0时,退出循环
WHILE @@FETCH_STATUS = 0 BEGIN insert into HISInterface (ID,PID,Name,Age) values(@ID, @PID , @Name , @Age) FETCH NEXT FROM LisCursor into @ID, @PID , @Name , @Age END

6.关闭游标

CLOSE LisCursor

7.释放游标

DEALLOCATE LisCursor

上一篇:http请求方法--fetch与axios


下一篇:fetch的使用