触发器问题
goods表:
列: GoodsId, Price
car表:
列: CarId, GoodsId, Number, TotalPrice
现在我想创建一个触发器,使在car表中插入条数据或者修改数据时,更新TotalPrice值,使之等于goods.Price * car.Number
这个触发器怎么写?
------解决方案--------------------create trigger trg_car on cars
for update,insert
as
begin
declare @goodsid int
declare @carid int
declare @price float
select @goodsid =goodsid,carid=@carid from inserted
select @price=price from goods where goodsid=@goodsid
update cars set TotalPrice=@price*number where goodsid=@goodsid,carid=@carid
end
------解决方案--------------------.....jinjazz(近身剪) ( ) 已经给出思路代码,还不满足..
现在的人都不想用脑..
就想偷别人代码
直接UPDATE 不就行了
------解决方案--------------------没必要写触发器.
触发器也只是一种存储过程.
写在你的INSERT 存储过程里就行了
------解决方案--------------------是啊,insert之前算出值,然后在insert就可以了,为什么要用触发器呢?吃力不讨好
------解决方案--------------------create trigger trg_car on car
for update,insert
as
begin
declare @goodsid int
declare @carid int
select @goodsid =goodsid,@carid=carid from inserted
update car set TotalPrice=(select Price*Number from car,goods where goodsid=@goodsid,carid=@carid)
end
我把上面的修改了一下,你看看~