Sql server SQL Server存储过程始终返回0

Sql server SQL Server存储过程始终返回0,sql-server,stored-procedures,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 * @canti

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

您仅在过程中设置@cantidad值。您只需要从PROC中选择该值。试着拥有

SELECT @PrecioTotal * @cantidad
另外,请看一下从过程(如输出参数)返回数据的过程

编辑:

你的程序应该是这样的

ALTER PROCEDURE pCalcular
    @PrecioTotal INT,
    @cantidad INT
AS
BEGIN
    PRINT ' Calculando ' + CAST (@PrecioTotal * @cantidad AS VARCHAR(40))
    SELECT @PrecioTotal * @cantidad
END

您仅在过程中设置@cantidad值。您只需要从PROC中选择该值。试着拥有

SELECT @PrecioTotal * @cantidad
另外,请看一下从过程(如输出参数)返回数据的过程

编辑:

你的程序应该是这样的

ALTER PROCEDURE pCalcular
    @PrecioTotal INT,
    @cantidad INT
AS
BEGIN
    PRINT ' Calculando ' + CAST (@PrecioTotal * @cantidad AS VARCHAR(40))
    SELECT @PrecioTotal * @cantidad
END

0只是进程的返回代码。0表示已成功执行。0只是进程的返回代码。0表示已成功执行。ALTER PROCEDURE PCALCURIVA-将存储过程的参数添加到此处@total INT、@procentaje INT、@result INT INT输出为BEGIN SELECT@result=@total*@procentaje SELECT@result END GOWoops,我没有写完我的评论,对此我很抱歉。像这样的怎么样?在本例中,我测试了它,它仍然返回0.No。在这种情况下,不需要在变量中进行选择。您只需要选择的结果作为过程返回的数据集。看到我的答案的编辑。谢谢你的帮助,得到了我想要的价值!ALTER PROCEDURE pCalcularIva-在此处添加存储过程的参数@total INT、@procentaje INT、@result INT输出为BEGIN SELECT@result=@total*@procentaje SELECT@result END GOWoops,我没有写完我的评论,对此我感到抱歉。像这样的怎么样?在本例中,我测试了它,它仍然返回0.No。在这种情况下,不需要在变量中进行选择。您只需要选择的结果作为过程返回的数据集。看到我的答案的编辑。谢谢你的帮助,得到了我想要的价值!