我想知道根据以下架构
如何根据orderDetail
表中的产品数量值更新库存库存值。
例如我有以下样本数据
的OrderDetail
Order-id Product-id Qty
1 1 5
广告资源
Inventory-id Date Product-id In-stock Out-stock stock-left
1 1/1/2016 1 10 5 5
让我们说在Order-detail表中,Qty的值变为1,我怎么能在Inventory表中将它改为1.
答案 0 :(得分:0)
使用Upsert wold帮助
MERGE INTO tablename USING table_reference ON (condition)
WHEN MATCHED THEN
UPDATE SET column1 = value1 [, column2 = value2 ...]
WHEN NOT MATCHED THEN
INSERT (column1 [, column2 ...]) VALUES (value1 [, value2 ...]);
答案 1 :(得分:0)
您可以使用触发器传播值
CREATE TRIGGER [dbo].[inventory_update] ON [dbo].[OrderDetail]
FOR UPDATE
AS
BEGIN
UPDATE Inventory
SET OutStock = inserted.Qty
FROM inserted
WHERE Inventory.inventory-id = inserted.inventory-id
END
答案 2 :(得分:0)
首先,我想说,计算成员不应该用作表中的属性。例如=> 库存=(总量) - (已售出数量)。这应该是计算成员,只有SQL 中的表达式。
顺便说一句,您仍然可以使用UPDATE TRIGGER解决此问题