我要实现的是目的是,创建一个游标,游标查询前20条数据,用游标来更新这20条数据中的前5条数据中的其中visitl_jrxiaofei,visitl_lszxiaofei两个段!
我的代码如下:
Declare @visitl_jrxiaofei int
Declare @visitl_lszxiaofei int
declare @i int
Declare myCursor Cursor For Select top 20 visitl_jrxiaofei,visitl_lszxiaofei From visitl_user
Open myCursor --打开游标
Fetch next From myCursor Into @visitl_jrxiaofei,@visitl_lszxiaofei --开始抓第一条数据
While @@fetch_status=0 --如果数据集里一直有数据
Begin Update visitl_user Set [visitl_jrxiaofei]=@visitl_jrxiaofei+1,visitl_lszxiaofei=@visitl_lszxiaofei+1
Fetch Next From myCursor Into @visitl_jrxiaofei,@visitl_lszxiaofei --跳到下一条数据
set @i=@i+1
If @i =4
break
End Close myCursor --关闭游标
Deallocate myCursor --删除游标 但这里还是不行恩,这里要怎么样才能实现我的这个功能呢?根据二楼的用SET @i=@i+1
if @i=4
break 这样还是不行恩! 要如何实现?
我的代码如下:
Declare @visitl_jrxiaofei int
Declare @visitl_lszxiaofei int
declare @i int
Declare myCursor Cursor For Select top 20 visitl_jrxiaofei,visitl_lszxiaofei From visitl_user
Open myCursor --打开游标
Fetch next From myCursor Into @visitl_jrxiaofei,@visitl_lszxiaofei --开始抓第一条数据
While @@fetch_status=0 --如果数据集里一直有数据
Begin Update visitl_user Set [visitl_jrxiaofei]=@visitl_jrxiaofei+1,visitl_lszxiaofei=@visitl_lszxiaofei+1
Fetch Next From myCursor Into @visitl_jrxiaofei,@visitl_lszxiaofei --跳到下一条数据
set @i=@i+1
If @i =4
break
End Close myCursor --关闭游标
Deallocate myCursor --删除游标 但这里还是不行恩,这里要怎么样才能实现我的这个功能呢?根据二楼的用SET @i=@i+1
if @i=4
break 这样还是不行恩! 要如何实现?
看看这样行不行??
If @i =4
begin
close myCursor
deallocate myCursor end
Declare @visitl_lszxiaofei int
declare @i int
declare @flag int --加这个看看
set @flag = 0 -- 加这个看看
Declare myCursor Cursor For Select top 20 visitl_jrxiaofei,visitl_lszxiaofei From visitl_user
Open myCursor --打开游标
Fetch next From myCursor Into @visitl_jrxiaofei,@visitl_lszxiaofei --开始抓第一条数据
While ( @@fetch_status=0 ) and ( @flag = 0 ) --如果数据集里一直有数据
Begin Update visitl_user Set [visitl_jrxiaofei]=@visitl_jrxiaofei+1,visitl_lszxiaofei=@visitl_lszxiaofei+1
Fetch Next From myCursor Into @visitl_jrxiaofei,@visitl_lszxiaofei --跳到下一条数据
set @i=@i+1
If @i =4
begin
set @flag = 1
end
-- break
End Close myCursor --关闭游标
Deallocate myCursor --删除游标 ---- 我没测试 抛砖引玉吧---------
Declare @visitl_lszxiaofei int
declare @i int
set @i=0
Declare myCursor Cursor For Select top 20 visitl_jrxiaofei,visitl_lszxiaofei From visitl_user
Open myCursor --打开游标
Fetch next From myCursor Into @visitl_jrxiaofei,@visitl_lszxiaofei --开始抓第一条数据
While @i<4 --如果数据集里一直有数据
Begin Update visitl_user Set [visitl_jrxiaofei]=@visitl_jrxiaofei+1,visitl_lszxiaofei=@visitl_lszxiaofei+1
Fetch Next From myCursor Into @visitl_jrxiaofei,@visitl_lszxiaofei --跳到下一条数据 set @i=@i+1
End Close myCursor --关闭游标
Deallocate myCursor --删除游标