Я спрашиваю, почему вы хотите удалить эти записи - и если вам нужно это сделать, я спрашиваю, почему вы делаете это внутри триггера.Я бы предпочел решение, которое уменьшает данные ежедневно.Но если вам действительно нужно это сделать, это может сработать:
delete h
from tblHistory h
inner join inserted i
on i.OrderId = h.OrderId
and i.UserId = h.UserId
where h.MyDate > dateadd("s",-5,getdate())
and h.HistoryID <
(select max(h2.HistoryID)
from tblHistory h2
where h2.OrderId = i.OrderId);
Я считал, что можно вставлять более одной строки за раз, в результате чего добавляется больше одной записи.В конце следует удалить макс.одна запись на исполнение.Вам могут потребоваться индексы для (OrderId, HistoryId) и (OrderId, UserId, MyDate) для хорошей производительности.
HTH