declare @Md int,@Strn char(4),@sql varchar(5000),@i int,@today datetime
set @today='2010-02-23'
set @Md=day( dateadd(day,-1, dateadd(month,1,convert(char(07),@today,120)+'-01')) )
set @sql='select '
set @i=1
where @i<=@Md
  begin
  select @Strn=right(rtrim(convert(char(12),@today,111)),2)
  select @sql=@sql+@Strn
  select @i=@i+1
  --continue
  endselect @sql在查询分析器中运行提示:
服务器: 消息 156,级别 15,状态 1,行 9
在关键字 'where' 附近有语法错误。

解决方案 »

  1.   

    貌似是要select当月的日期
    declare @Md int,@Strn char(4),@sql varchar(5000),@i int,@today datetime
    set @today='2010-02-23'
    set @Md = 32 - day(@today + 32 - day(@today))
    set @i=1
    while @i<=@Md
      begin
      select @sql = isnull(@sql+',', 'select ') + right('0'+ltrim(@i), 2)
      select @i=@i+1
      --continue
      end
    exec (@sql)