表說明:會員表 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"
問題:請問怎麼寫,讓編譯器知道,我要更新的報名記錄?
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
---------------
已解決。