SQL Server存储过程始终返回0

时间:2016-10-17 03:18:31

标签: sql-server stored-procedures

我被要求通过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

1 个答案:

答案 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