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
)
正如Tim所说,您可以使用触发器来完成这项工作。但是,那并不是一个好的整体解决方案。如果它必须在数据库中发生(最好不在这里),那么最好制作一个存储过程,然后调用它,并让它完成涉及其他表的工作。
此外,在存储货币值时,浮点数对于数据类型来说是一个糟糕的选择。我在这里有详细的帖子:
https://blog.greglow.com/2018/01/15/sql-newbie-mistake-1-using-float-instead-decimal/