表说明:会员表 HX_USER 主键 会员编号 U_ID U_NAME(会员名)
报名表 HX_ACTUSER 包含字段 U_ID (会员ID) HD_ID (活动ID)
活动表 HX_ACT 包含字段 HD_ID (活动ID)HD_NAME(活动名)HD_NUMPOST(报名人数)
目的:如上表,我想在删除一个会员的时候,同时删除这个会员在报名表中的记录,并将活动表中这个会员所报名的活动,它所对应的报名人数减去1.
代码:
create trigger [dbo].[tri_user_delete]
on [dbo].[HX_USER]
for delete
as
begin
delete HX_ACTUSER
from HX_ACTUSER h,deleted d
where h.U_ID = d.U_ID
UPDATE HX_ACT set HD_NUMPOST = HD_NUMPOST-1 where HD_ID IN (select HD_ID FROM HX_ACTUSER where U_ID = d.U_ID)
end
报错: 无法绑定由多个部分组成的标识符 "d.U_ID"
问题:请问怎么写,让编译器知道,我要更新的报名记录?
UPDATE HX_ACT set HD_NUMPOST = HD_NUMPOST-1 where HD_ID IN (select HD_ID FROM HX_ACTUSER where U_ID = deleted.U_ID)