Информация в вашем вопросе кажется немного беспорядочной, частично из-за идей в ней, но также из-за бесполезного грамматического / пробельного пространства (извините за грубость, но эти вещи полезны), но я постараюсь ответить как можно лучше.
В общем, предположим, что триггер медленнее, чем хранимый процесс. Они также добавляют более высокий уровень сложности, чем многие другие вещи, такие как проки, поэтому всегда убедитесь, что он вам действительно нужен, прежде чем его использовать.
Но я не понимаю, зачем вам нужен триггер, если вы только вставляете в одну таблицу. Триггеры обычно используются для реализации сложной логической цепочки. Если это прямая вставка или обновление, сохраните простоту и используйте процедуру.
Если это просто вставка, то самый быстрый способ - это массовая вставка.
Поскольку вы хотите сохранить предыдущее состояние, я бы посоветовал создать архивную / аудиторскую таблицу (в основном дубликат, возможно, с некоторыми дополнительными полями, такими как WhenInserted и т. Д.), При перемещении вставки (то есть вставке в новую таблицу и затем удалите из оригинала) существующие строки в архив, а затем вы можете выполнить массовую вставку для новых строк.
Но вы используете слово «изменить», поэтому трудно понять, чего вы действительно хотите. Надеюсь, это поможет.