如果你这种变量不定,你所要查询的字段如何确定呢?

解决方案 »

  1.   

    你这个不太可能啊。你的游标如何定义啊??
      

  2.   

    如果你能在定义游标这前程序能唯一确定字段数.你可以动态定义一字符串,在其中定义游标就可以了(其中字段名可通过循环写入),变量数就是循环控制条件.
      

  3.   

    游标是肯定不支持这样的,你能不能每次都取你的最大变量数,最多让部份变量赋空值.
      

  4.   

    建议不要用游标,游标效率不高又容易出错
      

  5.   

    declare @pTempi......  //这应该有个限制,不然没法写了
    declare @Num,@i int
    set @i=1
    select @num=pTemp+i  //获取个数
    declare @str1,@str2 varchar(1000)
    set @str1=''
    set @str2=''
    if @num=1  //当只有一个时,简单,就不写了
    begin
    end
    else      //当有多个变量时
    begin
      while(@i<@num)
      begin
        set @str1=@str1+'pTemp'+cast(@i as varchar)+','
        set @str2=@str2+'@pTemp'+cast(@i as varchar)+','
        set @i=@i+1
      end
      set @str1=@str1+'pTemp'+cast(@i as varchar)
      set @str2=@str2+'@pTemp'+cast(@i as varchar)
    endexec('declare mycur cursor for select '+@str1+' from table1 ')
    exec('fetch next from mycur into '+@str2)
    你试试吧!
      

  6.   

    建议不要用游标,游标效率不高又容易出错