select username,exec('select books from'+atable +'where 列='+[id]) as books from bbsbak 
呵呵,这是我能想到的办法了。不过我没有验证。不知道语法上能不能通过啊。

解决方案 »

  1.   

    描述的有点复杂哦,能更清晰点吗?你的"据id从atable保存的表中把books也列出来  "id 是那个id啊,是atable里的id 还是bbsbak的id呢?
      

  2.   

    多谢各位,liuyun2003(流云)的理解是正确的,但不行不通,语法错误!
    To jimmyxing(积极进取) id在atable保存的表中和bbsbak中都有,是
    bbsbak中的id 保存的是atable字段保存表的id字段值,是对应的
      

  3.   

    这样啊。那么你这么处理一下看看。
    declare @xun_int integer
    declare @xun_no_Int integer
    declare @id_int integer
    declare @tab_name_var varchar(100)
    declare @book_var varchar(100)
    select identity(int,1,1) as xun_no,[id],atable into tab_temp from bbsbak
    alter tab_temp add books varchar(100)
    select @xun_int=isnull(count(*),0) from bbsbak
    set @xun_no_Int =1
    while @xun_no_int<=@xun_int
    begin
      select @id_int=id,@tab_name_var=atable from tab_temp where xun_no=@xun_no_Int
      set @book_var=exec('select books from '+@tab_name_var+'where [id]='+@id_int) 
      update tab_temp set books=@book_var where xun_no=@xun_no_Int
      set @xun_no_Int=@xun_no_Int+1
    end
    select * from tab_temp
    如果还不行的话,我也没有办法了。呵呵~~希望可以帮到你啊。