「ブロックバスターのような」映画会社の SQL サーバー更新トリガーを作成しようとしています。MOVIES テーブルには、PK としての movie_id と、映画がレンタルされた回数の合計を保持する num_rented という別の列があります。この合計は、insert、delete、および update トリガーによって行われます。(これを行うためのはるかに良い方法があることは理解していますが、私の仕事は特にこれを必要としているので、この点を理解してください). CUSTOMER_RENTALS テーブルには PK として item_rental_id があり、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;
削除されたテーブルの値にアクセスして num_rental 列を以前の値に復元する必要があると考えていますが、方法がわかりません。事前に10億をありがとう!