为什么T-SQL EXEC没有返回小数?

4

我有一个简单的查询,已经转化为存储过程:

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。

有人知道为什么吗?

谢谢。

1个回答

8

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

谢谢Ed - 我想这只是一些简单的东西。 - Andrew MacNeill

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接