Compartilhar via


Contêiner Loop For

O contêiner Loop For define um fluxo de controle repetitivo em um pacote. A implementação de loop é semelhante à estrutura de loop For em linguagens de programação. Em cada repetição do loop, o contêiner Loop For avalia uma expressão e repete seu fluxo de trabalho até a expressão ser avaliada como False.

O contêiner Loop For usaos seguintes elementos para definir o loop:

  • Uma expressão de inicialização opcional que atribui valores aos contadores de loop.

  • Uma expressão de avaliação que contém a expressão usada para testar se o loop deve parar ou continuar.

  • Uma expressão de iteração opcional que incrementa ou diminui o contador de loop.

O diagrama a seguir mostra um contêiner Loop For com uma tarefa Enviar Email. Se a expressão de inicialização é @Counter = 0, a expressão de avaliação é @Counter < 4 e a expressão de iteração é @Counter = @Counter + 1, o loop é repetido quatro vezes e envia quatro mensagens de email.

Um contêiner Loop For repete uma tarefa quatro vezes

As expressões devem ser expressões do SQL ServerIntegration Services válidas. Para obter mais informações, consulte Referência de Expressões do Integration Services.

Para criar as expressões de inicialização e de atribuição, você pode usar o operador de atribuição (=). Não há suporte para esse operador pela gramática de expressão do Integration Services e só pode ser usado pelos tipos de expressão de inicialização e de atribuição no contêiner Loop For. Qualquer expressão que usa o operador de atribuição deve ter a sintaxe @Var = <expression>, onde Var é uma variável de tempo de execução e <expression> é uma expressão que segue as regras da sintaxe de expressão do SSIS. A expressão pode incluir as variáveis, literais e quaisquer operadores e funções que a gramática de expressão SSIS ofereça suporte. A expressão deve avaliar um tipo de dados que pode ser convertido em tipo de dados da variável.

Um contêiner Loop For pode ter só uma expressão de avaliação. Isso significa que o contêiner Loop For executa todos os seus elementos de fluxo de controle o mesmo número de vezes. Como o contêiner Loop For pode incluir outros contêineres Loop For, você pode construir loops aninhados e implementar loop complexo em pacotes.

Você pode definir uma propriedade de transação no contêiner Loop For para estabelecer uma transação para um subconjunto do fluxo de controle de pacote. Desse modo, você pode administrar transações em um nível mais granular. Por exemplo, se um contêiner Loop For repetir um fluxo de controle que atualiza dados em uma tabela várias vezes, você poderá configurar o Loop For e seu fluxo de controle para usar uma transação de modo a assegurar que se todos os dados não forem atualizados com êxito, nenhum dado seja atualizado. Para obter mais informações, consulte Incorporando transações em pacotes.

Configurando o contêiner Loop For

Você pode definir propriedades pelo Designer SSIS ou programaticamente.

Para obter mais informações sobre as propriedades que podem ser definidas no Designer SSIS, clique em um dos seguintes tópicos:

Para obter mais informações sobre como definir essas propriedades no Designer SSIS, clique em um dos seguintes tópicos:

Configurando o contêiner Loop For programaticamente

Para obter mais informações sobre como definir programaticamente essas propriedades, clique no seguinte tópico:

Ícone do Integration Services (pequeno) Fique atualizado com o Integration Services

Para obter os mais recentes downloads, artigos, exemplos e vídeos da Microsoft, bem como soluções selecionadas da comunidade, visite a página do Integration Services no MSDN ou TechNet:

Para receber uma notificação automática das atualizações, assine os feeds RSS disponíveis na página.