SQL - использовать результат из хранимой процедуры в другой хранимой процедуре - PullRequest
1 голос
/ 09 ноября 2011

У меня есть что-то вроде этого:

Create Procedure GetStockNumber
@Barcode int

As

Select CodStock from TBL_Stock
Where barcode = @barcode 

(скажем, результат выбора равен 8, например)

ОК, просто: D

БУТТ!Я хочу использовать результат (8) этого SP (GetStockNumber) в другом SP.Примерно так:

Create procedure Blablabla
@Quantity int

As

Update TBL_Stock
Set Quantity = Quantity - @Quantity 
Where CodStock = [THE RESULT OF THE SP (GetStockNumber)]

В этом случае это будет 8 для этого примера.

Так как я могу это сделать?

**

Решено с помощью метода 2º, упомянутого Икаром

**

1 Ответ

3 голосов
/ 09 ноября 2011

У вас есть несколько различных опций:

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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...