如果一次都查出来的话
declare @tab varchar(50)
set @tab=tab1+id
exec(select b.* from tab a ,tab1 b where @tab=b.id)

解决方案 »

  1.   

    create procedure up_MasterSlave
      @id char(15)        -- '主表查询字段值 i.e. R20041129001'
    as 
    begin
      declare @slave_tbl_name varchar(255)
      set @slave_tbl_name = null  select @slave_tbl_name = [Table]
        from MasterTab
       where [ID] = @id   if @slave_tbl_name is null
         return -1
       else
         exec('select m.*, s.* from MasterTab m,' + @slave_tbl_name +' s where m.tab_id =' + @id)
    end
      

  2.   

    exec up_MasterSlave 'R20041129001'
    --------------------------------------
    results :    ---
       ---
       ---
      

  3.   

    这样查得的是 主表的ID、Table, 和 从表的所有记录, 可以再加一个参数来限定在[从表]选中的记录
      

  4.   

    exec sp_executesql 'select * from master a  join details b on a.id = b.id '