declare  @tblName VARCHAR(30)
declare @s int
declare  @count int
declare  @i int
select @count =13 
while @count>1
  begin
 select @count=@count-1
if @count=1 or @count=3  or @count=5  or @count=7  or @count=8  or @count=10  or @count=12  
select @s =32
else
begin
if @count=2
select @s =30
else
select @s =31
end
      if @count<10
        Select  @tblName='tbl_'+'0'+cast(@count as char)
      else
        Select @tblName='tbl_'+cast(@count as char)
---------------------------------------------
while @s>1
begin
  select @s=@s-1
      if @s<10
        Select  @tblName=@tblName+ '0' + cast(@s as char)
      else
        Select @tblName=@tblName+cast(@s as char)
print @tblName
end
---------------------------------------------
  end
我想要tbl_0101,tbl_0102...的结果,错哪里了,帮我改改

解决方案 »

  1.   

    declare  @tblName VARCHAR(30) 
    declare @s int 
    declare  @count int 
    declare  @i int 
    select @count =13 
    while @count>1 
      begin 
    select @count=@count-1 
    if @count=1 or @count=3  or @count=5  or @count=7  or @count=8  or @count=10  or @count=12  
    select @s =32 
    else 
    begin 
    if @count=2 
    select @s =30 
    else 
    select @s =31 
    end 
          if @count <10 
            Select  @tblName='tbl_'+'0'+cast(@count as char) 
          else 
            Select @tblName='tbl_'+cast(@count as char) 
    while @s>1 
    begin 
      set @s=@s-1 
          if @s <10 
            Select  @tblName=@tblName+ '0' + cast(@s as char) 
          else 
            Select @tblName=@tblName+cast(@s as char) 
    print @tblName 
    end
    end 
      

  2.   

    exec('select * from'+@tblname)
      

  3.   

    declare  @tblName VARCHAR(30),@tblN VARCHAR(30)
    declare @s int 
    declare  @count int 
    declare  @i int 
    select @count =13
    while @count>1 
    begin 
    select @count=@count-1 
    if @count=1 or @count=3  or @count=5  or @count=7  or @count=8  or @count=10  or @count=12  
    select @s =32 
    else 
    begin 
    if @count=2 
    select @s =30  --今年2月应该28天
    else 
    select @s =31 
    end 
          if @count <10 
            Select  @tblName='tbl_'+'0'+cast(@count as varchar) 
          else 
            Select @tblName='tbl_'+cast(@count as varchar) 
    --------------------------------------------- 
    while @s>1 
    begin 
    select @s=@s-1 
      if @s < 10 
    Select  @tblN = @tblName+ '0' + cast(@s as varchar) 
      else 
    Select @tblN = @tblName + cast(@s as varchar) 
    print @tblN 
    end 
    END
      

  4.   

    declare  @tblName VARCHAR(30) ,@tblName1 VARCHAR(30)
    declare @s int 
    declare  @count int 
    declare  @i int 
    set @count =13 
    while @count>1 
    begin 
    set @count=@count-1 
    if @count=1 or @count=3  or @count=5  or @count=7  or @count=8  or @count=10  or @count=12  
    set @s =32 
    else 
    begin 
    if @count=2 
    set @s =29 
    else 
    set @s =31 
    end 
    if @count <10 
    set  @tblName1='tbl_'+'0'+rtrim(@count) 
    else 
    set @tblName1='tbl_'+rtrim(@count) 
    --------------------------------------------- 
    while @s>1 
    begin 
          set @s=@s-1 
          if @s <10 
            set  @tblName=@tblName1+ '0' + rtrim(@s) 
          else 
            set @tblName=@tblName1+rtrim(@s) 
     print @tblName 
    end 
    --------------------------------------------- 
    end 
    --数据太多了,给你显示一段吧。
    /*
    tbl_1231
    tbl_1230
    tbl_1229
    tbl_1228
    tbl_1227
    tbl_1226
    tbl_1225
    tbl_1224
    tbl_1223
    tbl_1222
    tbl_1221
    tbl_1220
    tbl_1219
    tbl_1218
    tbl_1217
    tbl_1216
    tbl_1215
    tbl_1214
    tbl_1213
    tbl_1212
    tbl_1211
    tbl_1210
    tbl_1209
    tbl_1208
    tbl_1207
    tbl_1206
    tbl_1205
    tbl_1204
    tbl_1203
    tbl_1202
    tbl_1201
    tbl_1130
    */
      

  5.   

    --重新定义了一个变量:@tblName1
    declare  @tblName VARCHAR(30) ,@tblName1 VARCHAR(30)
    declare @s int 
    declare  @count int 
    declare  @i int 
    set @count =13 
    while @count>1 
    begin 
    set @count=@count-1 
    if @count=1 or @count=3  or @count=5  or @count=7  or @count=8  or @count=10  or @count=12  
    set @s =32 
    else 
    begin 
    if @count=2 
    set @s =29 --这儿应该是29吧!!!
    else 
    set @s =31 
    end 
    if @count <10 
    set  @tblName1='tbl_'+'0'+rtrim(@count) 
    else 
    set @tblName1='tbl_'+rtrim(@count) 
    --------------------------------------------- 
    while @s>1 
    begin 
          set @s=@s-1 
          if @s <10 
            set  @tblName=@tblName1+ '0' + rtrim(@s) 
          else 
            set @tblName=@tblName1+rtrim(@s) 
     print @tblName 
    end 
    --------------------------------------------- 
    end 
    --数据太多了,给你显示一段吧。
    /*
    tbl_1231
    tbl_1230
    tbl_1229
    tbl_1228
    tbl_1227
    tbl_1226
    tbl_1225
    tbl_1224
    tbl_1223
    tbl_1222
    tbl_1221
    tbl_1220
    tbl_1219
    tbl_1218
    tbl_1217
    tbl_1216
    tbl_1215
    tbl_1214
    tbl_1213
    tbl_1212
    tbl_1211
    tbl_1210
    tbl_1209
    tbl_1208
    tbl_1207
    tbl_1206
    tbl_1205
    tbl_1204
    tbl_1203
    tbl_1202
    tbl_1201
    tbl_1130
    */