declare @sql varchar(8000)
set @sql=''
select @sql=@sql+'union all select * from ['+tbname+']' from b
set @sql=right(@sql,len(@sql)-10)
exec(@sql)

解决方案 »

  1.   


    declare @s varchar(8000)
    set @s=''
    select @s=@s+' union all  select * from '+ 表名字段 from 表
    set @s=substring(@s,12,8000)
    exec(@s)
      

  2.   


    抢楼总是输给pbsql啊
      

  3.   

    首先谢谢二位,但是执行的时候提示
    将 varchar 值 ']' 转换为数据类型为 int 的列时发生语法错误。
      

  4.   

    declare @sql varchar(8000)
    set @sql=''
    select @sql=@sql+' union all select * from ['+cast(tbname as varchar(20))+']' from b
    set @sql=right(@sql,len(@sql)-10)
    exec(@sql)