通过根据项目表和订单表中的(数量*价格)自动计算来插入TotalPrice的值

问题描述 投票:-1回答:1
CREATE TABLE Items
(
    ID INT IDENTITY(1,1) PRIMARY KEY,
    Name VARCHAR(50),
    Price FLOAT
)

CREATE TABLE Customers
(
    Id INT IDENTITY(1,1) PRIMARY KEY,
    Name VARCHAR(50),
    [Address] VARCHAR(200),
    Contact VARCHAR(50),
)

CREATE TABLE Orders
(
    Id INT IDENTITY(1,1) PRIMARY KEY,
    CustomerId INT FOREIGN KEY REFERENCES Customers(Id),
    ItemId INT FOREIGN KEY REFERENCES Items(Id),
    Quantity INT,
    TotalPrice FLOAT
)
sql-server left-join sql-insert
1个回答
0
投票

正如Tim所说,您可以使用触发器来完成这项工作。但是,那并不是一个好的整体解决方案。如果它必须在数据库中发生(最好不在这里),那么最好制作一个存储过程,然后调用它,并让它完成涉及其他表的工作。

此外,在存储货币值时,浮点数对于数据类型来说是一个糟糕的选择。我在这里有详细的帖子:

https://blog.greglow.com/2018/01/15/sql-newbie-mistake-1-using-float-instead-decimal/

© www.soinside.com 2019 - 2024. All rights reserved.