TR_BILLINGITEMDATES_INSERT_UPDATE
Definition
Copy
create trigger TR_BILLINGITEMDATES_INSERT_UPDATE on dbo.BILLINGITEMDATES after insert,update not for replication
as begin
begin try
if (exists (select BILLINGITEMDATES.ID from BILLINGITEMDATES inner join INSERTED I on BILLINGITEMDATES.BILLINGITEMID=I.BILLINGITEMID
where (BILLINGITEMDATES.ID <> I.ID) AND (I.DATERANGETYPECODE=0 OR BILLINGITEMDATES.DATERANGETYPECODE=0)))
begin
raiserror('ERR_BILLINGITEMDATES_OVERLAP', 13, 1);
end
if (exists (select BILLINGITEMDATES.ID from BILLINGITEMDATES inner join INSERTED I on BILLINGITEMDATES.BILLINGITEMID=I.BILLINGITEMID
where (BILLINGITEMDATES.ID <> I.ID) AND (
(BILLINGITEMDATES.STARTDATE between I.STARTDATE and I.ENDDATE) OR
(BILLINGITEMDATES.ENDDATE between I.STARTDATE and I.ENDDATE) OR
(BILLINGITEMDATES.STARTDATE <= I.STARTDATE and BILLINGITEMDATES.ENDDATE >= I.ENDDATE) OR
(BILLINGITEMDATES.ENDDATE IS NULL AND BILLINGITEMDATES.STARTDATE<=I.ENDDATE) OR
(I.ENDDATE IS NULL AND I.STARTDATE<=BILLINGITEMDATES.ENDDATE) OR
(I.ENDDATE IS NULL AND BILLINGITEMDATES.ENDDATE IS NULL))))
begin
raiserror('ERR_BILLINGITEMDATES_OVERLAP', 13, 1);
end
end try
begin catch
exec dbo.USP_RAISE_ERROR;
end catch
end