由于设计需要,我想动态的建立一些变量:declare @ssx intdeclare @blx varchar(100)set @ssx=3declare @ssy intset @ssy=1while @ssy<=@ssx
begin
   set @blx='@scsl'+cast(@ssy as char(1))   execute('declare ' + @blx + ' float')
   
   execute('set ' + @blx + ' =1')   set @ssy=@ssy+1end    
说明:我想根据@ssx的变化,动态的建立一些变量(float型):@scsl1,@scsl2.........,并给他们赋值为1,但是提示错误,请给我解决一下,急!

解决方案 »

  1.   

    declare @scsl table (
    id int,
    value float
    )declare @ssx int set @ssx=3 declare @ssy int set @ssy=1 while @ssy <=@ssx 
    begin 
      insert @scsl values(@ssy,1)
      set @ssy=@ssy+1 end    
      

  2.   

    楼主这是要干嘛?--定义变量
    declare @ssx int declare @blx varchar(100),@s nvarchar(4000),@s2 nvarchar(4000)select @ssx=3 declare @ssy int set @ssy=1 while @ssy <=@ssx 
    begin 
      set @blx='@scsl'+cast(@ssy as char(1))  select @s=isnull(@s+',','declare ') + @blx + ' float' ,@s2=isnull(@s2+',','select ')+@blx + ' =1'
      
      set @ssy=@ssy+1 end    
    exec(@s+' '+@s2)