Транзакции служб Integration Services
Пакеты используют транзакции для связывания выполняемых в базе данных задачами операций в атомарные объекты, и, таким образом, сохраняют целостность данных. Все типы контейнеров служб Microsoft Службы Integration Services (пакеты, контейнеры циклов по элементам и по каждому элементу, контейнеры последовательности, а также серверы задач, которые содержат каждую задачу) могут быть настроены для использования транзакций. Службы Integration Services предоставляют три параметра для настройки транзакций: NotSupported, Supportedи Required.
Required указывает, что контейнер запускает транзакцию, если она еще не запущена родительским контейнером. Если транзакция уже существует, контейнер с ней соединяется. Например, если пакет, не настроенный для поддержки транзакций, содержит контейнер последовательности, использующий параметр Required , то контейнер последовательности начнет свою собственную транзакцию. Если бы пакет был настроен для использования параметра Required , контейнер последовательности соединился бы с транзакцией пакета.
Supported указывает, что контейнер не запускает транзакцию, но соединяется с любой транзакцией, запущенной родительским контейнером. Например, если пакет с четырьмя задачами «Выполнение SQL» запускает транзакцию и все четыре задачи используют параметр Supported , то обновления базы данных, выполненные задачами «Выполнение SQL», откатываются при ошибке обновления любой из этих задач. Если пакет не начинает транзакцию, четыре задачи «Выполнение SQL» не связаны транзакцией и в случае ошибки обновления базы данных одной из задач отменяются только обновления этой задачи.
NotSupported указывает, что контейнер не начинает транзакцию и не соединяется с существующей транзакцией. Транзакция, запущенная родительским контейнером, не влияет на дочерние контейнеры, которые не были настроены на поддержку транзакций. Например, если пакет был настроен на запуск транзакции, а контейнер «цикл по элементам» в пакете использует параметр NotSupported , то в случае неудачи откат каких-либо задач в контейнере «цикл по элементам» невозможен.
Настройка транзакций происходит с помощью свойства контейнера TransactionOption. Установить это свойство можно в окне Свойства в среде SQL Server Data Tools (SSDT)или программным путем.
Примечание
Cвойствo TransactionOption
влияет на то, применяется ли значение свойства IsolationLevel
, запрашиваемого контейнером. Дополнительные сведения см. в описании IsolationLevel
свойства в разделе Настройка свойств пакета.
Настройка пакета на использование транзакций
Внешние ресурсы
- Запись в блоге, Как использовать транзакции в службах SQL Server Integration Services SSIS, на сайте www.mssqltips.com