SQL - 在插入,更新后使用触发器更新状态

时间:2017-12-12 23:58:04

标签: sql sql-server triggers sql-update sql-insert

我正在尝试创建一个触发器。

基本上我有一个表Reserves,作为保留状态。每个储备的x值为Reserveitems

ReserveItemsOfferID作为fk将该表格连接到OfferItems表格,作为每个可能要约的价格。

Item_RESERVE

[ID_RESERVE]
[ID_ITEMRESERVE]
[ID_OFFER]
[ID_ITEMOFFER]

预留

[ID_RESERVE]
[STATE_RESERVE]
[TOTAL]

Item_OFFERS

[ID_OFFER]
[ID_ITEMOFFER]
[PRICE]

基本上,我必须确保每次Item_OFFER中的价格等于0时,State_Reserve都会更改为“付费”。

所以我写了这个触发器(在下面发布),我试图确保当ReserveItems具有相同的ID_RESERVEID_ITEMSOFFER且价格= 0时,触发器触发。但是我没有确保在保留有超过2个ReservedItems链接的所有ID_RESERVE都是相同的。

ALTER TRIGGER tr_8  
ON Items_reserva
AFTER INSERT, UPDATE
AS  
   UPDATE RESERVAS
   SET ESTADO_DA_RESERVA = 'Paga', total = 0.00
   WHERE reservas.id_reserva IN (SELECT r.ID_RESERVA
                                 FROM RESERVAS r, ITEMS_RESERVA ir, ITEMS_RESERVA ir1, ITEMS_OFERTA io
                                 WHERE r.ID_RESERVA = ir.ID_RESERVA 
                                   AND ir.Id_Reserva = ir1.ID_RESERVA 
                                   AND io.ID_ITEMOFERTA = ir.ID_ITEMOFERTA 
                                   AND io.PRECO = 0)

0 个答案:

没有答案