我需要帮助编写此触发器,触发器在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
答案 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
负责过滤。