这个触发器我写错了吗 写错了吗?????????大哥们帮忙

diandianfei 2004-04-15 10:36:43
在OrderDetail上定义一个触发器,如果购物者改变了定单的数量,玩具的成本也自动地改变。 (玩具的成本在toys 表中 不在OrderDetail表中create trigger trgupdateorderquantity
on OrderDetail for update
as
declare @mtoycost money
declare @siqty smallint
declare @ctoyid char
select @siqty=siQty,@ctoyid=cToyId,@mtoycost=mToyCost from inserted
update toys set @mtoycost=@mtoyrate*@siqty where ctoyid=@ctoyid
我改变siqty 但为什么@mtoycost不变 到底错在哪





...全文
33 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
zjcxc 元老 2004-04-15
  • 打赏
  • 举报
回复
原来的问题:
1.不能处理同时更新多条记录的情况
2.update toys set @mtoycost=@mtoyrate*@siqty
更新的是变量的值,与表中记录的值无关,所以更新的结果当然不会反应到表中,也就自然没效果了
zjcxc 元老 2004-04-15
  • 打赏
  • 举报
回复
--没表结构,猜应该是这样:

create trigger trgupdateorderquantity
on OrderDetail
for update
as
update toys set mtoycost=b.mToyCost*b.siQty
from toys a join inserted b on a.ctoyid=b.cToyId

34,591

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧