我有一个简单的查询,我已经变成了存储过程:
create procedure GetAmount as
declare @amnt decimal(25,2)
select @amnt=66666.67
set @amnt = @amnt/3.00
print @amnt
return @amnt
如果我打印@amnt,则返回22222.22
但如果我使用EXEC并将其分配给变量:
declare @x numeric(25,2)
exec @x=SP_GetAmount()
print @x
它返回22222.00
任何人都知道为什么?
由于
答案 0 :(得分:8)
return
returns an integer。使用输出参数。
create procedure GetAmount
@amnt decimal(25,2) OUTPUT
as
select @amnt=66666.67
set @amnt = @amnt/3.00
GO
并称之为:
declare @x numeric(25,2)
exec SP_GetAmount() @amnt = @x OUTPUT
print @x