类似这样的东西,lz自己调整一下declare @i INT
DECLARE @sql VARCHAR(100)
set @i = 1while @i <=10
begin 
  set @sql ='select * from grade'+@i+' where sex = 1'
  exec(@sql)
  if @@error = 0
SET @i=@i+1
CONTINUE;
else
BREAK;end 

解决方案 »

  1.   

    Declare @sql Nvarchar(max),@num smallint,@loop smallintSet @num=10
    ------------ 1.Select 
    @sql=isnull(@sql+' Union all ','')+'select * from grade'+ltrim(number)+' where sex=1' 
    From master.dbo.spt_values 
    Where type='P' And number >0 And number<=@numExec (@sql)------------ 2.Select 
    @sql=isnull(@sql+nchar(13)+nchar(10),'')+'select * from grade'+ltrim(number)+' where sex=1' 
    From master.dbo.spt_values 
    Where type='P' And number >0 And number<=@numExec (@sql)------------ 3.
    Set @loop=1while @loop <= @num
    Begin
    Select @sql='select * from grade'+ltrim(@loop),@loop=@loop+1
    Exec (@sql)
    End
      

  2.   


    select (select ' select * from ['+name+'] ' from sys.tables where name like 'grade%' for xml path(''))+''
      

  3.   

    你的语句是错误的,if,else不能在select中
      

  4.   

    你的语句是错误的,if,else不能在select中楼主,弄出来没有?怎么解决的?