游标的使用和创建

1.游标 参考(https://www.cnblogs.com/HDK2016/p/9306377.html

2.优点

1)允许程序对由查询语句select返回的行集合中的每一行执行相同或不同的操作,而不是对整个行集合执行同一个操作。

2)提供对基于游标位置的表中的行进行删除和更新的能力。

3)游标实际上作为面向集合的数据库管理系统(RDBMS)和面向行的程序设计之间的桥梁,使这两种处理方式通过游标沟通起来。

2.缺点:
处理大数据量时,效率低下,占用内存大;
一般来说,能使用其他方式处理数据时,最好不要使用游标,除非是当你使用while循环,子查询,临时表,表变量,自建函数或其他方式都无法处理某种操作的时候,再考虑使用游标。

 
--声明游标 ADDPYM
declare ADDPYM cursor scroll
for select dbo.fn_GetPy(Sname)pym,Sname from student
--打开游标
open ADDPYM
--提取数据
declare @pym varchar(50)
declare @Sname varchar(50)
fetch first from ADDPYM into @pym,@sname
--@@fetch_status是SQLServer的一个全局变量,其值由数据库管理系统管理,值的改变是通过fetch next from触发的
--记录值有三种,分别为
--0 FETCH 数据提取成功
---1 FETCH 没取到数据,游标中的数据已经取完
---2 被提取的行不存在,进程被杀、意外中断

while @@fetch_status=0
begin
begin
 update Student set pym=@pym where Sname=@Sname
 --
 fetch next from ADDPYM into @pym,@sname
end
end
--关闭游标
close ADDPYM
--释放游标
deallocate ADDPYM

 

posted @ 2023-03-09 10:37  RC城  阅读(65)  评论(0编辑  收藏  举报