我被要求通过SQL Server中的存储过程计算一个数字的百分比,但由于某些原因,无论参数是什么,我总是得到0.
我的问题是这里发生了什么?
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE pCalcular
@PrecioTotal INT,
@cantidad INT
AS
BEGIN
PRINT ' Calculando ' + CAST (@PrecioTotal * @cantidad AS VARCHAR(40))
SELECT @cantidad = @PrecioTotal * @cantidad
END
我按照以下方式调用程序,我不确定问题是什么。
DECLARE @abc AS INT
EXEC @abc = pCalcular 70, .1
PRINT @abc
答案 0 :(得分:3)
您只在过程中设置值@cantidad。您只需要从PROC中选择该值。试试吧;
SELECT @PrecioTotal * @cantidad
另外,请查看来自OUTPUT
参数等过程的other ways返回数据。
编辑:
您的程序应如下所示;
ALTER PROCEDURE pCalcular
@PrecioTotal INT,
@cantidad INT
AS
BEGIN
PRINT ' Calculando ' + CAST (@PrecioTotal * @cantidad AS VARCHAR(40))
SELECT @PrecioTotal * @cantidad
END