sql server—当一个sql表发生更改时,触发另一个sql表中的更新时出现问题

rvpgvaaj  于 2021-07-24  发布在  Java
关注(0)|答案(1)|浏览(345)

我试图创建一个触发器,当sales表中有更新时,它会更新product表的p\u total\u sale列。例如,当我们在sales表中为p\u id 1销售500时。那么它应该把总销售额改为3100英镑。下面是表的图像。第一个表是“tb\ U销售”,第二个表是“tb\ U产品”。

现在的问题是,我编写的代码对所有产品进行了更新。让我给你看看结果。这是密码

create trigger update_product_sales
on tb_sales  
after insert
as   
begin
update tb_product   
set P_total_sale = P_total_sale + tb_sales.S_price
from tb_sales
where tb_product.P_ID = tb_sales.P_id
raiserror('Product table updated',16,2)
end

这是insert查询

insert into tb_sales
values(6,'2008-08-30',400,'Jensen',1)

这就是我得到的结果

我想知道我做错了什么以及如何解决它。谢谢您。

voj3qocg

voj3qocg1#

你能试试下面的代码片段吗。您只需更新新添加的“p\U id”的总销售额(不适用于所有p\ U id)

create trigger update_product_sales
on tb_sales  
after insert,delete 
as   
begin
update tb_product   
set P_total_sale = P_total_sale + INSERTED.S_price
from INSERTED
where tb_product.P_ID = INSERTED.P_id

end

相关问题