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