日期:2014-05-18  浏览次数:20535 次

表名能不能参数化?
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