I normally prefer to handle the checking for overlaps (as well as the update
of the end date for the old occurrence) via a trigger. A few times clients
requested this to be done in the stored procedures handling the data update
(with the argument that somebody may disable triggers).
When archiving data in a way you to do not have to worry about overlaps.
Since the system automatically sets the date and time based on the system
clock, overlaps should not occur unless the system clock if not accurate. On
systems where the user sets the dates it is important to enforce the
checking.
HTH,
Plamen Ratchev
http://www.SQLStudio.com