Transações do Integration Services
Os pacotes usam transações para associar as ações do banco de dados realizadas pelas tarefas em unidades atômicas e, ao fazer isso, a integridade dos dados é mantida. Todos os tipos de contêineres do Microsoft Integration Services, pacotes, o Loop For, Loop Foreach, contêineres de Sequência, e os hosts de tarefas que encapsulam cada tarefa, podem ser configurados para usar transações. O Integration Services fornece três opções para configurar transações: NotSupported, Há Suporte e Necessário.
Necessário indica que o contêiner inicia uma transação, a menos que uma já tenha sido iniciada por seu contêiner pai. Se uma transação já existir, o contêiner se unirá à transação. Por exemplo, se um pacote que não está configurado para suportar transações incluir um contêiner Sequência que usa a opção Necessário, o contêiner iniciaria sua própria transação. Se o pacote fosse configurado para usar a opção Necessário , o contêiner Sequência se uniria à transação do pacote.
Suportado indica que o contêiner não inicia uma transação, mas se une a qualquer transação iniciada por seu contêiner pai. Por exemplo, se um pacote com quatro tarefas Executar SQL iniciar uma transação e todas as quatro tarefas usarem a opção Suportado, as atualizações de banco de dados realizadas pelas tarefas Executar SQL serão revertidas se qualquer tarefa falhar. Se o pacote não iniciar uma transação, as quatro tarefas Executar SQL não serão associadas por uma transação e nenhuma atualização de banco de dados, exceto as realizadas pela tarefa que falhou, será revertida.
Não Suportado indica que o contêiner não inicia uma transação ou se une a uma transação existente. Uma transação iniciada por um contêiner pai não afeta contêineres filhos que foram configurados para não suportar transações. Por exemplo, se um pacote for configurado para iniciar uma transação e um contêiner Loop For no pacote usar a opção Não Suportado, nenhuma das tarefas no Loop For poderão ser revertidas se falharem.
Você configura transações definindo a propriedade TransactionOption no contêiner. É possível definir essa propriedade na janela Propriedades no SSDT (SQL Server Data Tools) ou definir a propriedade programaticamente.
Observação |
---|
A propriedade TransactionOption influencia a aplicação ou não do valor da propriedade IsolationLevel solicitada por um contêiner. Para obter mais informações, consulte a descrição da propriedade IsolationLevel no tópico Definindo propriedades do pacote. |
Para configurar um pacote para usar transações
Recursos externos
- Entrada de blog, How to Use Transactions in SQL Server Integration Services SSIS (em inglês), on www.mssqltips.com
|