小编Ste*_*eve的帖子

Sql Server Update触发器:如何使其工作

我正在尝试为我的"Blockbuster-like"电影公司编写一个sql server更新触发器.在我的MOVIES表中,我将movie_id作为PK,另一列名为num_rented,它总共保留了一部电影的租借次数.这个总数是通过我的插入,删除和更新触发器完成的.(我知道有更好的方法可以做到这一点,但我的任务特别要求这样做,所以请理解这一点).CUSTOMER_RENTALS表具有item_rental_id作为PK,MOVIES中的movie_id是FK.

我需要一个更新触发器,只要对CUSTOMER_RENTALS进行更新,它就会更新MOVIES中的num_rentals列.例如,假设movie_id 1已输入,但这是一个错误,它确实是movie_id 2.我希望num_rentals能够反映更新.

这是我到目前为止所做的,但我真的不知道在SET部分放置什么来实现这一目标:

CREATE TRIGGER tr_num_rentals_update
ON customer_rentals
AFTER UPDATE
AS
BEGIN
UPDATE m
SET num_rentals = ??????
FROM movies AS m
INNER JOIN inserted as i on m.movie_id=i.movie_id;
END;
Run Code Online (Sandbox Code Playgroud)

我想某种方式我需要访问已删除的表的值,以将num_rental列恢复到以前的值,但我不知道如何.提前感谢十亿!

sql sql-server triggers

7
推荐指数
2
解决办法
6万
查看次数

标签 统计

sql ×1

sql-server ×1

triggers ×1