Я получил эти таблицы:Making хранимой процедуры после обновления вставки другой таблицы триггера
Бронирования
- Reseration_ID
- User_ID
- TOTAL_AMOUNT
Tourist_Reservation
- Tourist_ID- внешний ключ
- Reservation_ID - внешний ключ к резервации
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 [email protected]_ID
END