exec('select * from'+ @n)

解决方案 »

  1.   

    or:
    set @N='select * from'+ @n
    exec(@N)
      

  2.   

    declare @n varchar(100)
    exec ('select * from'+@n)
      

  3.   

    解释一下原因:
    From后面SQL渴求的是一个物理的数据库对象名称,不能迟名称解析所以也不能是变量,因而要构造动态sql来查询
      

  4.   


    declare @n varchar(100)
    declare @sql varchar(1000)
    select @sql = 'select * from '+@n
    exec (@sql)
      

  5.   

    必须用 declare @n table (.....) 来定义。
      

  6.   

    蚂蚁的答案是正确的。关于这个,真的很他XX的。但是SQL SERVER 的帮助上就是这么写的。如果你不这么写,它就是不执行,报错。