我有这些表:
预订
- Reseration_ID
- 用户身份
- 总金额
Tourist_Reservation
- Tourist_ID-外键
- Reservation_ID - Reservation 的外键
Extra_Charges表
- Extra_Charge_ID
- 数量
- 描述
Tourist_Extra_Charges
- Tourist_ID - 外键
- Extra_Charge_ID - 外键
但是,当用户首先进行预订时——例如,基本数据包的价格为 500 欧元——它会被插入到表中的TotalAmount
列中Reservation
。
但是在下一个表单中,用户可以选择哪些将立即插入到表中extra_charges
(但他也可能不会选择任何)。extra_charges
Tourist_Extra_charges
问题是当用户选择了 extra_charges 我应该更新 TotalAMount 列。
因此,在tourist_extra_charges
表中插入后,我想创建一个触发器来更新表TotalAmount
中的列Reservation
。这就是我想出的。如果我可以优化它以及整个过程是否良好,请告诉我。
CREATE TRIGGER [dbo].[tralAmount] on [dbo].[TOURIST_EXTRA_CHARGES] After Insert
AS
BEGIN
Declare @Res_ID int
Declare @Sum_toAdd money
select @Res_ID = Reservation_ID from inserted
Inner join TOURIST_RESERVATION on inserted.Tourist_ID=TOURIST_RESERVATION.Tourist_ID
select @Sum_toAdd = Amout from inserted
Inner Join EXTRA_CHARGES on inserted.Extra_Charge_ID= EXTRA_CHARGES.Extra_Charge_ID
Update RESERVATIONS
Set Reservation_TotalAmount = (Reservation_TotalAmount + @Sum_toAdd)
where Reservation_ID=@Res_ID
END