我有这样的事情:
Create Procedure GetStockNumber
@Barcode int
As
Select CodStock from TBL_Stock
Where barcode = @barcode
(比方说,Select的结果是8)
好的简单:D
BUTTT!我想在另一个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。
那我怎么能这样做呢?
**
**
答案 0 :(得分:3)
您有几种不同的选择:
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)