Основываясь на ваших комментариях, вам, вероятно, следует просто проверить, прежде чем вставить.Существует не очень хорошее ограничение, которое вы могли бы применить, чтобы предотвратить дублирование вставки.
declare @Keeper_Number int = 5
declare @Enclosure_Number int = 2
declare @startShift datetime = '20181116 08:00:00'
declare @endShift datetime = '20181116 08:00:00'
if exists(select 1 from ShiftTable
where Keeper_Number = @Keeper_Number
and ( shiftStart between @startShift and @endShift
or shiftEnd between @startShift and @endShift)
)
begin
raiserror('Employee is already scheduled in another enclousre during this time',16,1)
return
end
else
begin
insert into ShiftTable(Keeper_Number, Enclousre_Number, shiftStart, shiftEnd)
values(@Keeper_Number, @Enclosure_Number, @startShift, @endShift)
end