"Blockbuster-like" film şirketim için bir sql server update tetikleyicisi yazmaya çalışıyorum. Benim MOVIES tablosumda, bir filmin kaç kez kiralandığını toplam olarak tutar. Bu toplam ekleme, silme ve tetikleyicileri güncelleme yoluyla yapılır. (Bunu yapmanın çok daha iyi yollarının olduğunu anlıyorum, ancak ödevlerim bunu özellikle istiyor, bu yüzden lütfen bu noktayı anlayın). CUSTOMER_RENTALS tablosu, PK olarak item_rental_id, MOVIES'den film_id ise bir FK'dir.Sql Sunucu Güncelleştirmesi tetikleyicisi: Nasıl çalışır?
CUSTOMER_RENTALS için bir güncelleme yapıldığında, MOVIES'deki num_rentals sütununu güncelleyecek bir güncelleştirme tetikleyicisine ihtiyacım var. Örneğin, movie_id 1 girdiyse ancak bu bir hataydı ve gerçekten de film_id 2 idi. Num_rentals'ın güncellemeyi yansıtmasını isterdim. Ben silinmiş tablonun değerlerini erişmesi gereken şekilde düşünüyorum
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;
: Burada
var bugüne kadar ama gerçekten bunu gerçekleştirmek için SET kısmında koymak için bilmiyorum ne num_rental sütunu önceki değerine geri yüklerim ama nasıl yapacağımı bilmiyorum. Şimdiden bir milyar teşekkür!
Yapabileceğiniz 'SET num_rentals = num_rentals + Güncelleme tetikleyici 1' ve' SET num_rentals = num_rentals - 1' silme tetik –
içinde benim silme tetiği rs içinde tam olarak ne yaptığını ve benim ekleme tetikleyicisi ayarlanır num_rentals = num_rentals + ile yukarı 1. Bir UPDATE tetikleyicisi ile, hem doğru num_rentals sütununa hem de yanlış num_rentals sütunundan çıkarılması için ikili yeteneğe ihtiyacım olmaz mı? – Steve