读书人

施行存储过程

发布时间: 2013-01-01 14:04:18 作者: rapoo

执行存储过程
create procedure Infor
(
@num int output,
@filter varchar(100)
)

as
declare @sql varchar(100)
set @sql='select @num=count(*) from sales order by'+ @filter+'desc'
exec(@sql)
为什么获取不到@num的值

declare @num int

exec Infor @num ,'title_id'
[解决办法]
exec(@sql)

这个@sql 已经不是在存储过程内部了,是把这句提交给数据库系统。当然看不到你的存储过程内的变量了。
[解决办法]
1、用临时表保存;
2、用打开记录集的方法获得。

读书人网 >SQL Server

热点推荐