我有一个包含 id、title、inventory 列的电影表,我添加了一个列 rent_count。我在网上找到了在更新行后增加rental_count的解决方案,但是只有在库存减少时(当有人租用东西时)才能增加租用计数?
问问题
1460 次
1 回答
1
Create trigger trigUpdateRentalCount
On Movies for Update
As
if Exists( Select * from inserted I
Join deleted d
On d.pk = i.pk
Where i.inventory = d.inventory - 1)
Update m Set rental_count += 1
From Movies m
join (inserted i Join deleted d
on i.pk = d.Pk
and i.inventory = d.inventory - 1)
on i.PK = m.PK
编辑解释触发器。在任何触发器中,用户都可以访问由导致触发器触发的 sql 语句删除或更新(使用旧值)的行集。可以使用关键字访问该集合deleted
。
它还可以使用关键字访问所有正在插入或更新的行(使用新的更新值)inserted
。
因此,如果已删除表中存在与插入表中的行匹配的任何行,其中库存的新插入值比旧值小一,那么,对于每个这样的行,您要更新(增量)rental_count
场地。
触发器依赖于 If Exists 语句来确定插入和删除中是否存在任何此类行。然后,如果有的话,它会增加rental_count
Movies 表中匹配行中的值。
于 2013-04-12T20:07:59.177 回答