小蜜蜂的天空

小亲亲制造
游标的一些例子

游标就   是相当于一个可以一条接一条读记录的指针.

如有一个表

num       score
1               80
2               70

在嵌入式的SQL中,就可以定义一个游标指向这个表如下

declare   cur   cursor   for   select   *   from   tab;   //定义游标
open   cur;               //打开游标,这时它指向第一条记录
while(1)
{
fetch   cur;                 //读取当前记录,并自动指向下一条记录
if(sqlca.sqlcode)break;         //记录都读完了,跳出
}
close   cur;       //关闭游标
free   cur;         //释放游标资源

 

declare my_cursor1 cursor for
select nContentId,dtEditTime from content where datepart(month,dtEditTime)='9' and datepart

(day,dtEditTime)='26'
open my_cursor1
declare @date sysname
declare @nID sysname
declare @tempDate datetime
fetch next from my_cursor1 into @nID,@date
while(@@fetch_status = 0)
begin
    set @tempDate =  dateadd(day,87,@date)
    --print @tempDate
    update Content set dtEditTime=@tempDate where nContentId = @nID
    fetch next from my_cursor1 into @nID,@date
end
close my_cursor1
deallocate my_cursor1用于把9月26日的日期改为:12月22日。
游标好比Sql中的指针。


declare @id nvarchar(20)  --定义变量来保存ID号
declare @A float                  --定义变量来保存值
declare mycursor cursor for select * from tb_c   --为所获得的数据集指定游标
open mycursor                   --打开游标
fetch next from mycursor  into @id,@A   --开始抓第一条数据
while(@@fetch_status=0)     --如果数据集里一直有数据
begin
 select tb_b.name,(tb_b.gz + @A) from tb_b where tb_b.id = @id   --开始做想做的事(什么更新

呀,删除呀)
        fetch next from mycursor into @id,@A     --跳到下一条数据
end
close mycursor        --关闭游标
deallocate mycursor  --删除游标

posted on 2008-03-10 09:14  FilyCks  阅读(204)  评论(0编辑  收藏  举报