Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Aplica-se a:SQL Server
SSIS Integration Runtime em Azure Data Factory
O contêiner For Loop define um fluxo de controle repetitivo em um pacote. A implementação do loop é semelhante às estruturas de repetição tipo For nas linguagens de programação. Em cada repetição do loop, o contêiner For Loop avalia uma expressão e repete seu fluxo de trabalho até que a expressão seja avaliada como False.
O contêiner For Loop usa os 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 For Loop com uma tarefa Enviar email. Se a expressão de inicialização for @Counter = 0, a expressão de avaliação for @Counter < 4, e a expressão de iteração for @Counter = @Counter + 1, o loop se repete quatro vezes e envia quatro mensagens de email.
As expressões devem ser expressões válidas do SQL Server Integration Services.
Para criar as expressões de inicialização e atribuição, você pode usar o operador de atribuição (=). Esse operador não é suportado pela gramática de expressão do Integration Services e só pode ser usado pelos tipos de expressão de inicialização e atribuição no contêiner For Loop. Qualquer expressão que use o operador de atribuição deve ter a sintaxe @Var = <expression>, onde Var é uma variável de tempo de execução e <expressão> é uma expressão que segue as regras da sintaxe de expressão SSIS. A expressão pode incluir as variáveis, literais e quaisquer operadores e funções suportados pela gramática de expressão SSIS. A expressão deve ser avaliada para um tipo de dados que possa ser convertido no tipo de dados da variável.
Um contêiner For Loop pode ter apenas uma expressão de avaliação. Isso significa que o contêiner For Loop executa todos os seus elementos de fluxo de controle o mesmo número de vezes. Como a caixa For Loop pode incluir outras caixas For Loop, pode criar loops aninhados e implementar loops complexos em pacotes.
Você pode definir uma propriedade transaction no contêiner For Loop para definir uma transação para um subconjunto do fluxo de controle do pacote. Dessa forma, você pode gerenciar transações em um nível mais granular. Por exemplo, se um contêiner For Loop repetir um fluxo de controle que atualiza dados em uma tabela várias vezes, você poderá configurar o For Loop e seu fluxo de controle para usar uma transação para garantir que, se nem todos os dados forem atualizados com êxito, nenhum dado será atualizado. Para obter mais informações, consulte Transações dos Serviços de Integração.
Adicionar iteração a um fluxo de controle com o contêiner For Loop
Integration Services inclui o container For Loop, um elemento de fluxo de controlo que simplifica a inclusão de loops que repetem condicionalmente um fluxo de controlo num pacote. Para obter mais informações, consulte For Loop Container.
O contentor For Loop avalia uma condição em cada iteração do loop e pára quando a condição é avaliada como false. O contêiner For Loop inclui expressões para inicializar o loop, especificando a condição de avaliação que interrompe a execução do fluxo de controle repetitivo e atribuindo um valor a uma expressão que atualiza o valor com o qual a condição de avaliação é comparada. Você deve fornecer uma condição de avaliação, mas as expressões de inicialização e atribuição são opcionais.
O contêiner For Loop não fornece nenhuma funcionalidade; ele fornece apenas a estrutura na qual você constrói o fluxo de controle repetível. Para fornecer funcionalidade de contêiner, você deve incluir pelo menos uma tarefa no contêiner For Loop. Para obter mais informações, consulte Tarefas dos Serviços de Integração.
O contêiner For Loop pode incluir um fluxo de controle com várias tarefas e pode incluir outros contêineres. Adicionar tarefas e contêineres a um contêiner For Loop é semelhante a adicioná-los a um pacote, exceto que você arraste as tarefas e os contêineres para o contêiner For Loop em vez de para o pacote. Se o contêiner For Loop incluir mais de uma tarefa ou contêiner, você poderá conectá-los usando restrições de precedência, assim como faz em um pacote. Para obter mais informações, consulte Restrições de precedência.
Adicionar um contêiner For Loop em um fluxo de controle
Adicione o contêiner For Loop ao pacote. Para obter mais informações, consulte Adicionar ou excluir uma tarefa ou um contêiner em um fluxo de controle.
Adicione tarefas e contêineres ao contêiner For Loop. Para obter mais informações, consulte Adicionar ou excluir uma tarefa ou um contêiner em um fluxo de controle.
Conecte tarefas e contêineres no contêiner For Loop usando restrições de precedência. Para obter mais informações, consulte Conectar Tarefas e Contêineres Usando uma Restrição de Precedência Padrão.
Configure o contêiner For Loop.
Configurar o contêiner For Loop
Este procedimento descreve como configurar um contêiner For Loop usando a caixa de diálogo For Loop Editor .
No SSDT (SQL Server Data Tools), clique duas vezes no contêiner For Loop para abrir o For Loop Editor.
Opcionalmente, modifique o nome e a descrição do contêiner For Loop.
Opcionalmente, digite uma expressão de inicialização na caixa de texto InitExpression .
Digite uma expressão de avaliação na caixa de texto EvalExpression .
Observação
A expressão deve avaliar-se a um valor booleano. Quando a expressão é avaliada como false, o loop para de ser executado.
Opcionalmente, digite uma expressão de atribuição na caixa de texto AssignExpression .
Opcionalmente, clique em Expressões e, na página Expressões , crie expressões de propriedade para as propriedades do contêiner For Loop. Para obter mais informações, consulte Adicionar ou alterar uma expressão de propriedade.
Clique em OK para fechar o For Loop Editor.
Caixa de diálogo Para o Editor de Loop
Use a página For Loop da caixa de diálogo For Loop Editor para configurar um loop que repete um fluxo de trabalho até que uma condição especificada seja avaliada como false.
Para saber mais sobre o contêiner For Loop e como usá-lo em pacotes, consulte For Loop Container.
Opções
InitExpression
Opcionalmente, forneça uma expressão que inicialize os valores usados pelo loop.
EvalExpression
Forneça uma expressão para avaliar se o loop deve parar ou continuar.
AtribuirExpressão
Opcionalmente, forneça uma expressão que altere uma condição cada vez que o loop se repete.
Nome
Forneça um nome exclusivo para o contêiner For Loop. Esse nome é usado como o rótulo no ícone da tarefa.
Observação
Os nomes de objeto devem ser exclusivos dentro de um pacote.
Descrição
Forneça uma descrição do contêiner For Loop.
Usar expressões com o contêiner For Loop
Ao configurar o contêiner For Loop especificando uma condição de avaliação, valor de inicialização ou valor de atribuição, você pode usar literais ou expressões.
As expressões podem incluir variáveis. A vantagem de usar variáveis é que elas podem ser atualizadas em tempo de execução, tornando os pacotes mais flexíveis e fáceis de gerenciar. O comprimento máximo de uma expressão é de 4000 caracteres.
Ao especificar uma variável em uma expressão, você deve prefaciar o nome da variável com o sinal de arroba (@). Por exemplo, para uma variável chamada Counter, insira @Counter a expressão que o contêiner For Loop usa. Se você incluir a propriedade namespace na variável, deverá colocar a variável e o namespace entre colchetes. Por exemplo, para uma variável Counter no namespace MyNamespace , digite [@MyNamespace::Counter].
As variáveis que o contêiner For Loop usa devem ser definidas no escopo do contêiner For Loop ou no escopo de qualquer contêiner que seja superior na hierarquia do contêiner do pacote. Por exemplo, um contêiner For Loop pode usar variáveis definidas em seu escopo e também variáveis definidas no escopo do pacote. Para obter mais informações, consulte Variáveis do Integration Services (SSIS) e Usar variáveis em pacotes.
A gramática de expressão SSIS fornece um conjunto completo de operadores e funções para implementar expressões complexas usadas para avaliação, inicialização ou atribuição. Para obter mais informações, consulte Expressões dos Serviços de Integração (SSIS).