sqlserver 游标写法
1.简单游标
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
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.用于更新的游标
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
-- 定义游标 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 |