首先
select RecId,RegTime into #Tmps from Users where id in(select [user_id] from Manuscript where Projects_id='173676' and Manuscript_state=4)打个比方 我这条语句插入的数据为:
RecId  RegTime 
1       2010-1-1
2       2010-2-2
3       2010-3-3
4       2010-4-4
接着执行下面语句
declear @count int
declear @i int
set @i=0
select   @coutn=count([user_id]) from Manuscript where Projects_id='173676' and Manuscript_state=4
while @i<@count
begin
我想做的事情:按照顺序取出 RegTime ,注意这里的顺序是按照红色SQL语句所查询的顺序 ,请教大家了 谢谢set @i=@i+1
end

解决方案 »

  1.   

    declare @id int,@time datetimedeclare cur cursor 
    for select RecId,RegTime 
    from Users 
    where id in(select [user_id] from Manuscript where Projects_id='173676' and Manuscript_state=4)open cur  fetch next from cur into @id,@time  
    while @@fetch_status=0
    begin
    -- 你想做的事
      
    fetch next  from cur into @id,@time
    end
    close cur
    deallocate cur 
    go 
      

  2.   

    没理解你的真正意图.参考:
    游标的基本写法declare @id int,@name varchar(20);
    declare cur cursor fast_forward for
      select id,name from a;
    open cur;
    fetch next from cur into @id,@name;
    while @@fetch_status=0
    begin
       --做你要做的事
       fetch next from cur into @id,@name;
    end
    close cur;
    deallocate cur;
      

  3.   


    我想做的事就是在循环里面取 临时表里面的RegTime 
    第一次
    REGID为1 取时间就为2010-1-1
    第二次
    2   取时间就为2010-2-2
    一次类推
    相当于.NET的循环
      

  4.   

    declare @id int,@name varchar(20);
    declare cur cursor fast_forward for
      select id,name from a;
    open cur;
    fetch next from cur into @id,@name;
    while @@fetch_status=0
    begin
       --做你要做的事
        -- @id 就是 RecId,,@name 就是 RegTime    fetch next from cur into @id,@name;
    end
    close cur;
    deallocate cur;