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
|