什么是游标
游标(Cursor)是处理数据的一种方法,为了查看或者处理结果集中的数据,游标提供了在结果集中一次一行或者多行前进或向后浏览数据的能力
它使用户可逐行访问由SQL Server返回的结果集。使用游标(cursor)的一个主要的原因就是把集合操作转换成单个记录处理方式。
用SQL语言从数据库中检索数据后,结果放在内存的一块区域中,且结果往往是一个含有多个记录的集合。
游标机制允许用户在SQL server内逐行地访问这些记录,按照用户自己的意愿来显示和处理这些记录。
我们可以把游标当作一个指针,它可以指定结果中的任何位置,然后允许用户对指定位置的数据进行处理。
示例
--声明(创建)游标对象(标准游标)
declare
MyCursor cursor
for SELECT s.ID,s.KuCun FROM Tbl_Code s where Code3='2'
--读取游标数据
--声明两个变量接收从游标中取出的值
declare @ID int,@Name int;
begin
--打开游标
open MyCursor;
--移动游标取值
fetch next from MyCursor into @ID,@Name;
--这里对游标的状态进行判断,如果为0,证明游标中有值
while @@FETCH_STATUS = 0
BEGIN
print(@ID);
print(@Name);
update Tbl_Code set KuCun=KuCun+@Name where ID=@ID
--让游标继续往后移动
fetch next from MyCursor into @ID,@Name;
end
--关闭游标
CLOSE MyCursor
--释放游标
DEALLOCATE MyCursor
end