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
|