17,377
社区成员
发帖
与我相关
我的任务
分享
create trigger visits_update on dbo.Visits
for update
as
update visits
set V_DayVisits=case when d.V_DayVisits>i.V_DayVisits then d.V_DayVisits else i.V_DayVisits end,
V_TotalVisits=case when d.V_TotalVisits>i.V_TotalVisits then d.V_TotalVisits else i.V_TotalVisits end
from visits a ,inserted i,deleted d
where a.id=i.id and i.id=d.id
GO
create or replace trigger tri_tb_up before update on Visits for each row
begin
select
decode(sign(:new.V_DayVisits-:old.V_DayVisits),1,:new.V_DayVisits,-1,:old.V_DayVisits),
decode(sign(:new.V_TotalVisits-:old.V_TotalVisits),1,:new.V_TotalVisits,-1,:old.V_TotalVisits) into :new.V_DayVisits,:new.V_TotalVisits from dual;
end;
create or replace trigger visits_update
before update on dbo.Visits
for each row
begin
update visits a
set V_DayVisits=(case when :old.V_DayVisits>:new.V_DayVisits
then :old.V_DayVisits else :new.V_DayVisits end),
V_TotalVisits=(case when :old.V_TotalVisits>:new.V_TotalVisits
then :old.V_TotalVisits else :new.V_TotalVisits end)
where a.id=:new.id and :new.id=:old.id;
create or replace trigger visits_update
before update on dbo.Visits
for each row
begin
if :old.V_DayVisits>:new.V_DayVisits then
:NEW.V_DayVisits:=:old.V_DayVisits;
end if ;
if :OLD.V_TotalVisits>:NEW.V_TotalVisits then
:NEW.V_TotalVisits:=:OLD.V_TotalVisits;
end if ;
end;