存储过程的返回值?

520zyb 2004-01-16 03:33:39
怎样得到精确的返回值?
create procedure test
as
declare @i int,@m money
set @i=2
set @m=3.00
print convert(varchar(5),@m/@i) --这里打印的值是正确的1.50
return @m/@i

对该存储过程的调用!
declare @m money
exec @m=test
print convert(varchar(5),@m) --这里就和存储过程内部的打印值不一样为2.00

怎样才能得到准确值呢?
...全文
35 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
520zyb 2004-01-17
  • 打赏
  • 举报
回复
多谢各位!
gmlxf 2004-01-16
  • 打赏
  • 举报
回复
存储过程的返回值:
return--只能返回整数
output--返回你自己定义的数据类型
smalldeer 2004-01-16
  • 打赏
  • 举报
回复
定义一个output返回值

create procedure test
@out varchar(10) output
as
declare @i int,@m money
set @i=2
set @m=3.00
print convert(varchar(5),@m/@i) --这里打印的值是正确的1.50
set @out=convert(varchar(5),@m/@i)

declare @result varchar(10)
exec test @result output
print @result

realgz 2004-01-16
  • 打赏
  • 举报
回复
括号括错了!!
create procedure test
(@r numeric(10,2) output)
as
declare @i int,@m money
set @i=2
set @m=3.00
print convert(varchar(5),@m/@i) --这里打印的值是正确的1.50
set @r=@m/@i
--return @m/@i

go
declare @r numeric(10,2)
exec test @r output
print @r

realgz 2004-01-16
  • 打赏
  • 举报
回复
create procedure test
(@r numeric(10,2)) output
as
declare @i int,@m money
set @i=2
set @m=3.00
print convert(varchar(5),@m/@i) --这里打印的值是正确的1.50
set @r=@m/@i
--return @m/@i

go
declare @r numeric(10,2)
exec test @r output
print @r
zarge 2004-01-16
  • 打赏
  • 举报
回复
存储过程只能返回整型值

22,207

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧