导航

Sql 游标的几种用法

Posted on 2011-02-25 09:36  夹心刺猬  阅读(427)  评论(0)    收藏  举报

/*一般游标的用法*/

Set RowCount 10
Declare @Name varchar(50) --声明存储变量
Declare Curs CurSor For --声明游标,并指向数据源
Select Name from SysObjects --数据源
Open Curs --打开游标
Fetch Next From Curs Into @Name --读取下一条数据
While @@Fetch_Status=0 --游标状态正确,则进去循环
Begin
Print @Name
Fetch Next From Curs Into @Name --读取下一条数据
End
Close Curs --关闭游标
Deallocate Curs --删除游标

 

/* 只获取前几条数据的游标用法 Set RowCount 10*/

--创建一个变量保存游标中的值
declare @column1 varchar(50)
--声明一个变量保存要获取的 条数
declare @rowcount int
set @rowcount = 1
--创建一个游标,名称为:curs.
DECLARE curs
CURSOR FOR
 select adpPageSign from dbo.FuJianAdPosition --使用CURSOR For指向数据源
OPEN curs -- 打开游标
FETCH NEXT FROM curs --读取下一条记录
--into @xxx 变量 保存 游标指向的 记录 中的 某列值,使用,分隔 into @xxx,@xxx
--INTO 列表中声明的变量数目必须与所选列的数目相同
into @column1
WHILE @rowcount > 0
Begin
if @@FETCH_STATUS<>0 --没有数据 则跳出
 break;
select adName From dbo.FuJianAdvertising where adPositionSign = @column1
 FETCH NEXT FROM curs into @column1 --下一游标
 set @rowcount = @rowcount -1 --循环次数-1
END
CLOSE curs
DEALLOCATE curs