读书人

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

发布时间: 2012-02-01 16:58:19 作者: rapoo

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

读书人网 >SQL Server

热点推荐