Het beste zou zijn om triggers te vermijden en een controle uit te voeren met if bestaat voordat u invoegt
IF NOT EXISTS (SELECT TOP 1 1 FROM MyTable WHERE @InsertedEndDate > begin_date AND @InsertedBeginDate < end_date)
BEGIN
--do actual insert/work
END
Het is een eenvoudige controle om de eerste overlap te vinden. De Select TOP 1 1 is een truc om te voorkomen dat de gegevens daadwerkelijk worden opgehaald, het zal terugkeren zodra het overeenkomt met een rij die het datumbereik overlapt dat u daadwerkelijk probeert op te slaan