表名能不能参数化?该怎么处理

表名能不能参数化?CREATEPROCEDUREsrSelect@tablenamevarchar(20),@outtvarchar(20)ASselect@outtfrom@tab

表名能不能参数化?
CREATE   PROCEDURE   srSelect
@tablename   varchar(20),
@outt   varchar(20)
  AS
select     @outt     from   @tablename
GO

报错:必须声明@tablename

我想查询时表名也用参数传递过来~
我想问一下这个过程怎么修改?
不想用exec的~~


[解决办法]
不想用exec的
----------------------
那就用 sp_executesql 好了,表名想参数化只能靠动态SQL
[解决办法]
CREATE PROCEDURE srSelect
@tablename varchar(20),
@outt varchar(20)
AS
declare @strsql varchar(4000)
set = 'select '+ @outt + ' from ' + @tablename

exec @strsql
GO