2010-11-08 2 views
0

У нас есть сложное задание SSIS, и в каждой транзакции мы должны вставлять около 30K + записей на SQL-сервере. Пакет использует локальные транзакции с операторами транс-старта и отката. Я немного озадачен этим поведением отката транзакций, когда он НЕ очищает 2-3 записи от одной из таблиц, когда он откатывается назад. Когда я выдаю откат, он должен очистить все вставленные записи в таблице, но это НЕ происходит, и вместо этого он оставляет 2-3 таблицы в таблице, что неверно.Откат транзакции SQL-сервера

Кроме того, бизнес-задача состоит в том, чтобы либо создать все записи в одной транзакции, либо отменить все созданные, я не могу выполнять частичные коммиты. Надеюсь, это даст четкое представление о том, что происходит.

Любые мысли?

+0

Возможно comitting новую транзакцию для каждой из вставок, которые происходят во время процесса ввода является наиболее обеспеченный подход, и отката на предыдущую версию, только если есть ошибка, читать @@ ERROR или что-то так, я не Не помню наизусть. –

+0

Да. Вы действительно не говорите, ЧТО озадачивает вас. Проголосовал за закрытие. Нет вопросов. – TomTom

+0

Он довольно ясно о проблеме. Он хочет знать, почему откатная транзакция не смогла полностью отбросить назад. –

ответ

1

Я переключился на MSDTC для обработки этих транзакций в SSIS. Для меня это звучало как работа вокруг использования семантики начала и фиксации транзакций, и я думаю, что причина частичного отката. После перехода на MSDTC эта проблема решена.

Большое спасибо

Смежные вопросы