我需要你的专家观察来使这个触发器工作。
我有3个表格,Create_Event
是主要的,第二个(events_status
)是状态表,第三个(event_history
)一个是'备份表'。
我只想跟踪每个事件,因为状态已更新为“已完成”状态。也想从主表中删除相同的行但我不想丢失它直到我有一个曲目。
所以,这就是我正在尝试的东西..但它的删除部分无效。
ALTER TRIGGER trgUpdhistory on Events_Status for update
as
declare @status varchar(255)
BEGIN
set xact_abort on
select @status=status from inserted
if (@status = 'Completed')
begin try
begin tran
insert into Event_History
select * from Create_Event
where exists(select * from create_event D left join inserted E on D.ID=E.CE_Ids)
delete from Create_Event
where exists(select * from create_event D left join deleted E on D.ID=E.CE_Ids)
COMMIT
end try
begin catch
ROLLBACK
RAISERROR ('Transaction is not completed',16,1)
end catch
END