zee89757 2015-03-14 07:08 采纳率: 33.3%
浏览 1906
已采纳

删除触发器里加一个更新操作,出现错误

表说明:会员表 HX_USER 主键 会员编号 U_ID U_NAME(会员名)
   报名表 hx_huodonguser 包含字段 U_ID (会员ID) HD_ID (活动ID)
   活动表 HX_HUODONG  包含字段 HD_ID (活动ID)HD_NAME(活动名)HD_NUMPOST(报名人数)
目的:如上表,我想在删除一个会员的时候,同时删除这个会员在报名表中的记录,并将活动表中这个会员所报名的活动,它所对应的报名人数减去1.
代码:
  create trigger [dbo].[tri_user_delete]
  on [dbo].[HX_USER]
  for delete
  as
  begin
    delete hx_huodonguser
    from hx_huodonguser h,deleted d
    where h.U_ID = d.U_ID

    UPDATE HX_HUODONG set HD_NUMPOST = HD_NUMPOST-1 where HD_ID IN (select HD_ID FROM hx_huodonguser where U_ID = d.U_ID)
  end
报错: 无法绑定由多个部分组成的标识符 "d.U_ID"
问题:请问怎么写,让编译器知道,我要更新的报名记录?

  • 写回答

1条回答 默认 最新

  • zee89757 2015-03-14 09:29
    关注

    ALTER trigger [dbo].[tri_hx_user_delete]
    on [dbo].[HX_USER]

    for delete
    as
    begin
    --活动

    declare @U_ID int
    select @U_ID=U_ID  from  deleted
    UPDATE HX_HUODONG set HD_NUMPOST = HD_NUMPOST-1 where HD_ID IN (select HD_ID FROM hx_huodonguser where U_ID = @U_ID) 
    
    delete hx_huodonguser
    from hx_huodonguser h,deleted d
    where h.U_ID = d.U_ID
    
     ---------------
     已解决。
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器