我有一个简单的数据库,其中包含有关俱乐部,乐队及其音乐会的信息。我问题中最重要的2个表格如下:
Band(Name,AmountOfMembers)
和
音乐会(ClubName,ClubAdress,BandName,AmountOfMembers,Date)
当我们使用有关乐队的新信息更新Concert表时(我们更改乐队X的成员数量),我需要编写一个触发器,并更新Band表以反映变化。
到目前为止,我设法写了这个:
CREATE TRIGGER updateTrigger ON Concert
INSTEAD OF UPDATE
AS
BEGIN
IF UPDATE (AmountOfMembers)
BEGIN
UPDATE Band
SET AmountOfMembers=(SELECT DISTINCT AmountOfMembers FROM inserted)
WHERE Name=(SELECT DISTINCT BandName FROM inserted)
UPDATE Concert
SET AmountOfMembers=(SELECT DISTINCT AmountOfMembers FROM inserted)
WHERE BandName=(SELECT DISTINCT BandName FROM inserted)
END
END
此触发器在大多数情况下都能正常工作,但在测试时我意识到它无法使用查询:(处理此类查询是分配的一部分)
UPDATE Concert
SET AmountOfMembers='50'
我写的其他触发器也无法处理这种情况,但我在这里跳过它们,因为它们看起来都很相似。
这是课程作业的一部分,(我们只是开始使用sql所以它并不复杂,我知道)所以我并没有要求我准备好代码来复制-paste,只是一些关于如何处理这个问题的一般提示。
非常感谢任何帮助。