declare @table_name varchar(20), @sql varchar(1000)select @sql ='select * from ' + @table_name + ' where ....'
exec(@sql)

解决方案 »

  1.   

    能,
    declare @t varchar(10)
    set @t = 'sysobjects'
    exec ('select * from ' + @t)
      

  2.   

    create proc 名
    @表名 varchar(10)
    as
    exec('select * from @表名')
      

  3.   

    create proc 名
    @表名 varchar(10)
    as
    exec('select * from '+@表名)
      

  4.   

    declare @table_name varchar(20), @sql Nvarchar(1000)select @sql =N'select * from  + @table +  where ....'
    exec sp_execute @sql ,N'@table varchar(20)' ,@table_name 
     
      

  5.   

    使用动态存储过程:
    declare @a varchar(20)
    set @a='table'
    exec ('select * from '+@a)
      

  6.   

    上面有点问题
    declare @table_name varchar(20), @sql Nvarchar(1000)select @sql =N'select * from  + @table +  where ....'
    exec sp_executesql  @sql ,N'@table varchar(20)' ,@table_name