我是触发器的新手,我遇到了一些问题。我正在尝试创建一个触发器,将表sales
中新插入的值90添加到表internetServices
中salesYTD中的id 100的总销售额中。它似乎正确地进行了计算,但它只是假设影响id为100的行。可悲的是它似乎每个salesYTD
都在改变它。
CREATE TRIGGER InsertTrigger
ON Sales
AFTER INSERT As
UPDATE InternetServices
SET SalesYTD = (SELECT SUM(Amount)
FROM Sales
WHERE ServiceID = 100)
WHERE ServiceID = 100;
GO
Print 'Master table Before Insert'
Select * From InternetServices
Print 'After Insert'
INSERT INTO Sales VALUES( 11, '2012-11-14' , 90 , 100 );
Select * From InternetServices
不确定我是否提供了足够的信息这是我第一次发布SQL问题。请不要让我知道,我会更新它。谢谢。
答案 0 :(得分:1)
您需要使用INSERTED table
。所以它将插入的金额(在表销售中)添加到现有金额中
column SalesYTD
的{{1}}。
table InternetServices
答案 1 :(得分:0)
where
需要update
子句,而不仅仅是子查询:
UPDATE InternetServices
SET SalesYTD = (SELECT SUM(Amount)
FROM Sales
WHERE ServiceID = 100
)
WHERE ServiceID = 100;