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

  

上一篇:IO通信模型(二)同步非阻塞模式NIO(NonBlocking IO)


下一篇:python socket timeout设置