sqlserver 游标写法


表结构:People表,PeopleDetail表

 

1.简单游标

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

2.用于更新的游标 

-- 定义游标
declare m_cursor cursor scroll for 
select a.Id,b.Address from  People a left join PeopleDetail b on a.Id=b.PeopleId
for update
-- 打开游标
open m_cursor
declare   @Address varchar(50), @Id int
--填充数据
fetch next from m_cursor into @Id,@Address
--假如检索到了数据,才处理
while @@FETCH_STATUS=0
begin
	update People set  Address=@Address where current of m_cursor
	--填充下一条数据
	fetch next from m_cursor into @Id,@Address
end
-- 关闭游标
close m_cursor
--释放游标
deallocate m_cursor

  

 

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM