exec('select * from '+@tablename)

解决方案 »

  1.   

    declare @tablename char(20),@year char(4)select @year='2004'
    select @tablename='表'+@yearexec('select * from ['+@tablename+']')
      

  2.   

    比如有如下过程:
    select sum(余额) from 记录0103
      where id in
      (
       select max(id) 
       from 记录0103
       left join 关系号 on 记录0103.关系号=关系号.关系号
       where 证号<=终止证号 and 关系号.一级=1
       group by 关系号.关系号
      )
    要把‘记录0103’变为变量有办法吗
      

  3.   

    好象没有什么好办法,函数也不支持exec语句。
      

  4.   

    declare @sql varchar(500)
    declare @tablename varchar(20)
    select @tablename='记录0103'
    select @sql='
    select sum(余额) from ' + @tablename + '
      where id in
      (
       select max(id) 
       from ' + @tablename + ' d_table
       left join 关系号 on d_table.关系号=关系号.关系号
       where 证号<=终止证号 and 关系号.一级=1
       group by 关系号.关系号
      )'
    exec(@sql)