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) 你试试吧!
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)
你试试吧!