Я унаследовал кошмарный спроток WTF, который вставляет 300 тыс. Строк в таблицу исходящих маркетинговых писем.Мы хотим не ставить сообщения в очередь на адреса электронной почты, которые подпрыгивают.У нас есть отдельная таблица прыгающих писем.
Правильный способ сделать это состоит в том, чтобы изменить sproc так, чтобы он не вставлял строки для прыгающей электронной почты.
Никто не хочет трогать кошмарный кластерный трах, который и есть этот конкретный спрок.Таким образом, мы рассматриваем возможность добавления команды удаления в sproc.
BEGIN TRANSACTION
--400+ lines of nightmarish WTF T-SQL, string and XML replacement nonsense goes here--
DELETE FROM EmailQueueItems
WHERE ToAddress IN
(SELECT EmailStatuses.Email FROM EmailStatuses
INNER JOIN EmailEventTypes on EmailEventTypes.EmailEventTypeId = EmailStatuses.EmailEventTypeId
WHERE EmailEventTypes.CanSendMarketing = 0)
COMMIT TRANSACTION
, так что ... это будет работать?Могу ли я удалить вставки из таблицы до совершения транзакции?