Nejlepší by bylo vyhnout se spouštěčům a před vložením provést kontrolu, zda existuje
IF NOT EXISTS (SELECT TOP 1 1 FROM MyTable WHERE @InsertedEndDate > begin_date AND @InsertedBeginDate < end_date)
BEGIN
--do actual insert/work
END
Je to jednoduchá kontrola k nalezení prvního překrytí. Výběr TOP 1 1 je trik, jak se vyhnout skutečnému načítání dat, vrátí se, jakmile se bude shodovat s řádkem, který překrývá časové období, které se ve skutečnosti pokoušíte uložit