Множественные транзакции
В одном пакете Integration Services может содержаться несколько самостоятельных транзакций. Каждый раз, когда контейнер в середине иерархии вложенных контейнеров не поддерживает транзакции, контейнеры выше и ниже по иерархии начинают отдельные транзакции, если настроены для поддержки транзакций. Транзакции фиксируются или откатываются, начиная с самой глубокой задачи в иерархии вложенных контейнеров пакета. Однако после фиксации вложенной транзакции она не откатывается, если внешняя транзакция прервана.
Например, пакет включает контейнер последовательности, содержащий два контейнера «цикл по каждому элементу», и каждый контейнер включает две задачи «Выполнение SQL». Контейнеры «цикл по каждому элементу» не поддерживают транзакции, а контейнер последовательности и задача «Выполнение SQL» поддерживают. В этом примере каждая задача «Выполнение SQL» запустит свою собственную транзакцию и не будет откатываться, если транзакция задачи последовательности будет прервана.
Свойства TransactionOption контейнера последовательности, контейнера «цикл по каждому элементу» и задач «Выполнение SQL» установлены следующим образом:
Свойство TransactionOption контейнера последовательности установлено в значение Required.
Свойства TransactionOption контейнеров «цикл по каждому элементу» установлены в значения NotSupported.
Свойства TransactionOption задач «Выполнение SQL» установлены в значения Required.
На следующей диаграмме показаны пять несвязанных транзакций в пакете. Одна транзакция была начата контейнером последовательности, а четыре других — задачами «Выполнение SQL».
См. также