输入函数@id1,@id2,@id3
想用一个变量名代替while @n<=3
begin
set @sql='select @id'+@n
exec(@sql)
end不知道怎样能够通过循环实现
select @id1
select @id2
select @id3
的功能,exec(@sql)不能够执行,请教有什么办法?谢谢啦!

解决方案 »

  1.   


    while @n<=3
    begin
    set @sql='select '+ltrim(@id)+ltrim(@n)
    exec(@sql)
    end
      

  2.   

    declare @campaign1 varchar(3),@campaign2 varchar(3),@id int,@n varchar(1),@sql varchar(100),@campaign varchar(10)
    set @campaign1='T2m'
    set @campaign2='T3m'
    set @id=1
    set @campaign='@campaign'while @id<=3 
    begin
    set @n=@id
    set @sql='select @campaign='+ltrim(@campaign)+ltrim(@n)
    exec(@sql) 
    set @id=@id+1
    end消息 137,级别 15,状态 2,第 1 行
    必须声明标量变量 "@campaign1"。
    消息 137,级别 15,状态 2,第 1 行
    必须声明标量变量 "@campaign2"。
    消息 137,级别 15,状态 2,第 1 行
    必须声明标量变量 "@campaign3"。
      

  3.   

    while @n<=3
     begin
     set @sql=@sql+'select @id'+@n+';'
     end
     exec(@sql)