我創建使用Microsoft SQL Server的一個餐廳的庫存檢查庫存現貨2014SQL Server上插入
我想寫每當我插入新的訂單到orderDetail
觸發表中,來自庫存的表格將自動更新outStock
作爲orderDetail.quantity
和stockLeft
,基於stockLeft
之前的stockLeft
匹配product_ID
。
我對SQL Server非常陌生。任何意見/建議對我都很有幫助。謝謝!!
下面是
我的表數據庫這是我到目前爲止已經試過
USE [BuffaloWildWingsDB]
GO
CREATE TRIGGER update_stock
ON orderDetail
AFTER INSERT
AS
BEGIN
DECLARE @stock INT,@productID INT, @prevDate date, @prevStock INT;
SET @stock = (SELECT quantity FROM orderDetail)
SET @productID = (SELECT product_ID FROM orderDetail)
SET @prevDate = (SELECT [date] FROM inventory WHERE inventory.product_ID = @productID AND [date] < GETDATE())
SET @prevStock = (SELECT stockLeft FROM inventory WHERE [date] = @prevDate)
INSERT INTO inventory (product_ID, outStock, stockLeft) VALUES (@productID,@stock,@[email protected]);
END
我可以運行此查詢不錯,但每當我更新orderDetail
與
INSERT INTO orderDetail(order_ID,product_ID, quantity) values (10101, 1013, 2)
GO
我得到這個錯誤 消息512,級別16,狀態1,過程update_stock,行14 子查詢返回多個值。當子查詢遵循=,!=,<,< =,>,> =或當子查詢用作表達式時,這是不允許的。 該聲明已被終止。 有什麼想法?
我更新了問題。我不知道如何使用FUNCTION來檢查之前日期中相同product_ID的值。任何幫助將非常感激。 –