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