我有这样的东西:
Create Procedure GetStockNumber
@Barcode int
As
Select CodStock from TBL_Stock
Where barcode = @barcode
(假设Select的结果是8)
好简单:D
屁股!我想在另一个 SP 中使用该 SP (GetStockNumber) 的结果 (8)。 像这样的事情:
Create procedure Blablabla
@Quantity int
As
Update TBL_Stock
Set Quantity = Quantity - @Quantity
Where CodStock = [THE RESULT OF THE SP (GetStockNumber)]
在本例中,该值将为 8。
那么我该怎么做呢?
**
使用伊卡洛斯提到的2°法求解
**
最佳答案
您有几个不同的选择:
1) 从第一个存储过程返回一个输出参数。
Create Procedure GetStockNumber
@Barcode int ,
@CodStock int OUTPUT
As
Select @CodStock = CodStock
from TBL_Stock
Where barcode = @barcode
使用它:
DECLARE @CodStock int
EXEC GetStockNumber @BarCode, @CodStock OUTPUT
Update TBL_Stock
Set Quantity = Quantity - @Quantity
Where CodStock = @CodStock
2) 将存储过程转换为有返回值的函数。
CREATE FUNCTION GetCodStock(@BarCode INT) RETURNS INT
AS
BEGIN
RETURN (SELECT CodStock
FROM TBL_Stock
Where barcode = @barcode)
END
使用它:
Update TBL_Stock
Set Quantity = Quantity - @Quantity
Where CodStock = dbo.GetCodStock(@BarCode)
关于SQL - 在另一个存储过程中使用存储过程的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8059242/