if exists (select * from SYSTRIGGERS where LCase(trigname)=lcase('TrigGuestsDates')) then drop trigger TrigGuestsDates end if GO CREATE TRIGGER "TrigGuestsDates" after insert,update order 1 on "DBA".Guests referencing new as GSNEW for each row begin declare @PPDate date; declare @BDate date; set @PPDate=FloatToDate(GSNEW.PassportDate); set @BDate=(if GSNEW.EGN is not null and Length(GSNEW.EGN)>5 and GSNEW.HumanKind=1 then EGNToDate(GSNEW.EGN) else FloatToDate(GSNEW.BirthDate) endif); if CheckEGN(GSNEW.EGN)=1 then update Guests set IsEgnEnch=1 where GuestNum=GSNEW.GuestNum; else update Guests set IsEgnEnch=0 where GuestNum=GSNEW.GuestNum; end if; if GSNEW.PassportDateDt is null or GSNEW.BirthDateDt is null or @PPDate<>GSNEW.PassportDateDt or @BDate<>GSNEW.BirthDateDt then update Guests set BirthDateDt=@BDate,BirthDate=DateToFloat(@BDate), PassportDateDt=@PPDate where GuestNum=GSNEW.GuestNum end if end