日期:2014-05-18  浏览次数:20462 次

触发器问题
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

我把上面的修改了一下,你看看~