ฉันมีสองตาราง:
- สั่งซื้อและ
- ผลิตภัณฑ์.
ฉันต้องการให้คอลัมน์เฉพาะ (OnShelfQuantity) ในตารางผลิตภัณฑ์ได้รับการอัปเดตเมื่อมีการเพิ่มแถวใหม่ในตารางคำสั่งซื้อ ฉันได้ใช้แบบสอบถามด้านล่างเพื่อใช้ทริกเกอร์ซึ่งจะทำเช่นนั้น แต่ปัญหาคือเมื่อฉันแทรกแถวในตาราง Order แล้วตรวจสอบตาราง Product เพื่อดูการเปลี่ยนแปลงในภายหลัง ฉันสังเกตเห็นว่าตาราง Product ได้รับการอัพเดตถึง 3 ครั้ง ตัวอย่างเช่น: ปริมาณการสั่งซื้อที่แทรก = 10 ดังนั้นควรลบเพียง 10 เท่านั้นจาก Product_TAB.OnShelfQuantity แต่ 30 โดนลบ. กรุณาช่วย!
create trigger dbo.Trigge
ON dbo.Ordertable
AFTER INSERT
AS
BEGIN
update Product_TAB set OnShelfQuantity= Product_TAB.OnShelfQuantity - Ordertable.Quantity
FROM dbo.Product_TAB
INNER JOIN Ordertable
ON Ordertable.ProductID = Product_TAB.ProductID;
END;
inserted
และdeleted
ตารางเสมือน ที่ใช้ในทริกเกอร์ - person AlwaysLearning   schedule 11.01.2021