SQL字段作为查询结果

时间:2013-11-21 23:30:45

标签: sql database-design

我有一个餐馆的数据库。项目表(itemid,itemname,price)和订单表(orderid,itemid,数量,价格)。我在订单表中有价格字段,因为如果项目表中的价格发生了变化,那么当然不应该更改订单价值。无论如何要自动设定价格? 我似乎无法做到这一点:

    CREATE TABLE ORDER(
    OrderID INT IDENTITY(1,1) PRIMARY KEY,
    ItemID INT NOT NULL,
    Quantity INT NOT NULL,
    Price MONEY AS (SELECT Price FROM ITEM)
    );

1 个答案:

答案 0 :(得分:0)

如果您正在编写将插入新行的唯一应用程序,则在INSERT时设置订单行的价格。

否则,考虑一个触发器,只要任何人在任何地方将一行插入该表中,该触发器就会执行。它可以在将记录写入数据库之前查找商品价格并在订单上设置值。