你好,我有以下存儲過程:嵌套如果條件在T-SQL
CREATE PROCEDURE update_stock_level
(
@ItemID int,
@Quantity int = 1,
@Return int = 0
)
AS
IF @Return = 0
UPDATE Stock
SET Quantity = (Quantity - @Quantity)
WHERE ItemID = @ItemID
ELSE
UPDATE Stock
SET Quantity = (Quantity + @Quantity)
WHERE ItemID = @ItemID
此存儲過程是POS應用,這個程序做什麼(應該做的)是更新(增加或減少)基於物品ID和物品數量的庫存水平。
ItemID - >從前端選擇的項目ID。 數量 - >多少項 返回 - >如果返回值爲'0',這意味着它是錯誤的,這意味着這不是一個返回銷售,如果它是'1',這意味着一個項目正在返回,在這種情況下,股票應該增加按數量返還。如果沒有任何內容傳遞給qantity參數,那麼默認值爲1.
我現在的問題是股票水平得到降低的罰款,但是在作出回報時它不會增加。
如果@quantity = 0 .. set Quantity = Quantity - @Quantity? – Stoleg 2014-08-27 10:04:09
哦,謝謝你,我不知道這是不是我必須做點什麼。 :) – 2014-08-27 10:06:19
正如@Stoleg所說,如果數量= 0,您的第一個條件將不起作用。如果數量= 0或者其他情況,你就完全一樣! – Logar 2014-08-27 10:09:13