存储过程的返回参数问题(OUTPUT)

加入一笔记录到表bankMoney,并查询此表中userID= Zhangsan的所有存款的总金额。
Create proc insert_bank @param1 char(10),@param2 varchar(20),@param3 varchar(20),@param4 int,@param5 int output
with encryption ---------加密
as
insert bankMoney (id,userID,sex,Money)
Values(@param1,@param2,@param3, @param4)
select @param5=sum(Money) from bankMoney where userID='Zhangsan'
go




在SQL Server查询分析器中执行该存储过程的方法是:
declare @total_price int
exec insert_bank '004','Zhangsan','男',100,@total_price output
print '总余额为'+convert(varchar,@total_price)
go


我想请问下  OUTPUT起的作用是什么,其中有两处有OUTPUT,它是怎么传递的,
请高手帮我下,谢谢

boyi55 2008-5-11 01:55
OUTPUT

表明参数是返回参数。该选项的值可以返回给 EXEC[UTE]。使用 OUTPUT 参数可将信息返回给调用过程。Text、ntext 和 image 参数可用作 OUTPUT 参数。使用 OUTPUT 关键字的输出参数可以是游标占位符。
-------
在上面的存储过程中,第五个参数为输出参数.过程内用select将sum(money)的值赋给第五个参数.在调用时,声明一个变量@total_price代替第五个参数来取得这个值.
另:如果输出是int的话还可以直接用return.
posted on 2008-07-21 09:14  恩恩爸爸  阅读(362)  评论(1)    收藏  举报