为什么T-SQL Exec不返回小数



我有一个简单的查询,我已经变成了一个存储的proc:

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

有人知道为什么吗?

谢谢

return返回整数。使用输出参数。

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

最新更新