用if条件写sql触发器

时间:2014-11-12 23:08:30

标签: sql triggers

我需要帮助编写此触发器,触发器在Product表上,当hoursLeft = 0时,它需要更新表Offer status ='Expired'。我是sql的新手,我将不胜感激任何帮助。

到目前为止,我有这个:

 CREATE TRIGGER dbo.Product_NoUnitsAvailable
 ON dbo.Product
 FOR UPDATE
 AS

 IF
 (SELECT dbo.Product.hoursLeft FROM dbo.Product, inserted i WHERE dbo.Offer.ProductId = i.ProductId) = 0

BEGIN

UPDATE dbo.Offer
SET Status = 'Expired'
WHERE dbo.Offer.Product = Inserted.ProductId

END

1 个答案:

答案 0 :(得分:1)

我怀疑你想要的查询是这样的:

UPDATE o
    SET Status = 'Expired'
    FROM dbo.Offer o JOIN
         Inserted i
         ON o.Product = i.Product
    WHERE i.hoursLeft = 0;

不需要明确的if语句; join负责过滤。