我是编码新手,目前正在学习 SQL Server 2019 中的数据库
我有3张桌子
OrderInfo
,EmployeeSales
和SalesInfo
。
OrderInfo
有以下列:
OrderId, customerId, EmployeeId, ProductId, ShipAddress
在
SalesInfo
,我有这些专栏:
OdrId, ProdId, ProdName, ProdQuantity, ProdPrice, ShipAdd
在
EmployeeSales
以下列
OdrId, EmpId, ProductId, ProductName, ProductQuan, ProductPrice
我想使用触发器自动插入数据。
Empid
和OdrId
应该从OrderInfo
插入,EmployeeSales
的其余细节应该从SalesInfo
插入。如何实现自动插入和更新?
我可以使用删除级联自动删除
听起来你真的只是想要一个
VIEW
,这避免了你必须维护另一个表并保持同步。
CREATE OR ALTER VIEW dbo.EmployeeSales
WITH SCHEMABINDING
AS
SELECT
o.OrderId,
o.EmpId,
s.ProductId,
s.ProductName,
s.ProductQuan,
s.ProductPrice
FROM dbo.OrderInfo o
JOIN dbo.SalesInfo s
ON s.OrderId = o.OrderId
AND s.ProductId = o.ProductId;
如果您在查询此视图时遇到性能问题,您应该确保您的表在连接列上正确索引。如果这没有帮助,那么您实际上可以索引视图本身。
我注意到你的桌子设计有点奇怪。
OrderInfo
和SalesInfo
似乎都表示关系Order_Product
,但OrderInfo
包含的信息也与整个订单有关。所以我希望 ProductId
从 OrderInfo
中删除,这样每个订单只有一行,而不是每个产品。