我有这些表后存储过程使INSERT,UPDATE,其他表触发
- Tourist_ID-外键
- Reservation_ID - 外键的订房
Extra_Charges表
- Extra_Charge_ID
- 金额
- 说明 个
Tourist_Extra_Charges
- Tourist_ID - 外键
- Extra_Charge_ID - 外键
但是,当一个用户在第一次进行预约 - 例如,基本包费用500欧元 - 它被插入Reservation
表中的TotalAmount
列。
但是,在下一个表格中,用户可以选择extra_charges
哪个(但他也可以不选择任何extra_charges
),它们立即插入Tourist_Extra_charges
表中。
问题是,由于用户选择extra_charges,我应该更新列TotalAMount。
因此,在插入tourist_extra_charges
表后,我想创建一个触发器,它将更新Reservation
表中的列TotalAmount
。这就是我想出的。 如果我可以优化它,并且整个过程良好,请指教我。
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 [email protected]_ID
END