基于属性B的属性A(Microsoft SQL Server 2014)

时间:2016-11-04 19:20:57

标签: sql sql-server attributes sql-server-2014 auto-update

例如,我有两个名为Manager_OrderBook_Inventory的表。

Manager_Order(
  ID (PK),
  Book_Name,
  Quantity (Attribute A)
)

Book_Inventory(
  ID (PK),
  Book_Name (FK on Manager_Order),
  Quantity (Attribute B)
)

每次经理都会下订单,我希望Book_Inventory自动更新数量

2 个答案:

答案 0 :(得分:1)

例如,您可以创建一个触发器。

https://msdn.microsoft.com/en-us/library/ms189799(v=sql.110).aspx

答案 1 :(得分:1)

查看使用更新后触发器。

这是一个例子(未经测试):

CREATE TRIGGER [dbo].Update_Book_Inventory
ON [dbo].Manager_Order  
FOR  UPDATE
AS
BEGIN
    SET NOCOUNT ON;
      UPDATE [dbo].Book_Inventory
        SET Quantity = i.Quantity
            FROM [dbo].Book_Inventory
            INNER JOIN INSERTED i ON [dbo].Book_Inventory.Book_Name = i.Book_Name
END

参考: https://www.mssqltips.com/sqlservertip/4024/sql-server-trigger-after-update-for-a-specific-value/