Так требуется ли иметь возможность отменить удаление и вставку?
сохранить удаляемые строки в заархивированную таблицу, поэтому создайте заархивированную таблицу, если у вас есть поле идентификации, которое вам нужно будет вставитьс identity_insert на
select * into MyEMpTable_Archived from MyEMpTable
where 1=2;
выберите строки, которые нужно удалить, и вставьте их в таблицу архива.
Удалите строки из целевой таблицы.
Загрузите новые строкииз таблицы этапов.
Вам также необходимо отслеживать вновь вставленные строки на случай, если вы захотите отменить операцию.Поэтому запишите максимальное значение до загрузки, а затем снова после загрузки.
ЕСЛИ пользователь вызывает после загрузки новых данных, можно будет удалить вновь вставленные строки и вернуть удаленные строки.
Это большая работа.
Убедитесь, что у вас есть хорошие частые резервные копии, вложите средства в виртуальное восстановление SQL или какой-либо другой инструмент, который позволит вам извлечь только одну таблицу, которую вы ищете, в непроизводственную среду, а затем перенести нужные строки обратно втаблица.
Если это происходит часто, возможно, вам не следует удалять из целевой таблицы, но иметь битовое поле и пометить их как неактивные или удаленные, чтобы вы могли избежать всего этого.