Сначала меня беспокоит то, что вы заставляете триггеры обрабатывать несколько строк с помощью курсора. Не делай этого! Используйте основанную на множестве оценку вместо того, чтобы присоединиться к вставленным или удаленным псевдостолам. Кто-то поместил один из этих триггеров на основе курсора в нашу базу данных, прежде чем я пришел сюда. Обработка вставки 400 000 записей заняла более сорока минут (и мне часто приходится вставлять более 100 000 записей в эту таблицу для одного клиента). Изменение его на решение на основе множеств изменило время до менее минуты. Хотя все триггеры должны быть способны обрабатывать несколько строк, вы не должны делать это, создавая кошмар производительности.
Если вы можете написать выбранную оценку для клиента, вы можете написать вставку, обновить или удалить на основе той же выбранной оценки, которая основана на наборе.