今天看sql报表的时候,看到数据库的sql语句,有很长的一段游标的语句,
自己对游标不是很熟悉,借此机会也记个笔记。
<a>https://www.cnblogs.com/kingteach/p/3801054.html</a>
http://blog.csdn.net/feng2375/article/details/2063551
1 declare @id int 2 declare @name varchar(50) 3 4 declare cursor1 cursor for --定义游标cursor1 5 select * from table1 --使用游标的对象(跟据需要填入select文) 6 open cursor1 --打开游标 7 8 fetch next from cursor1 into @id,@name --将游标向下移1行,获取的数据放入之前定义的变量@id,@name中while @@fetch_status=0 --判断是否成功获取数据 9 begin 10 update table1 set name=name+‘1‘ 11 where id=@id --进行相应处理(跟据需要填入SQL文) 12 13 fetch next from cursor1 into @id,@name --将游标向下移1行 14 end 15 16 close cursor1 --关闭游标 17 deallocate cursor1
-----------------------------------------------------------------------------declare
m_cursor
cursor
scroll
for
select
Address,PeopleId
from
PeopleDetail
open
m_cursor
declare
@Address
varchar
(50), @PeopleId
int
fetch
next
from
m_cursor
into
@Address,@PeopleId
while @@FETCH_STATUS=0
begin
print @Address +
convert
(
varchar
(3), @PeopleId)
fetch
next
from
m_cursor
into
@Address,@PeopleId
end
close
m_cursor
deallocate
m_cursor 释放游标,也叫删除游标
------------------------------------------------------------
关于释放游标:
1.创建了游标,他就存在于内存之中;创建后就要释放,一个好的程序员应该养成这样的习惯,不要以为反正系统会给释放,结果谁都没释放,后果是,或者它无谓地占着空间,或者会出点什么溢出之类的事情,特别是那些在循环中创建的东西,一定得在循环中用完后释放.
2.记住一点:创建了不使用就把它给释放。这个习惯很重要