Tarefa Executar Pacote

A tarefa Executar Pacote estende os recursos empresariais do Integration Services deixando pacotes executarem outros pacotes como parte de um fluxo de trabalho.

Você pode usar a tarefa Executar Pacote para os seguintes propósitos:

  • Decompor fluxo de trabalho de pacote complexo. Essa tarefa permite decompor o fluxo de trabalho em vários pacotes, que são mais fáceis de ler, testar e manter. Por exemplo, se estiver carregando dados em um esquema de estrela, você poderá criar um pacote separado para preencher cada dimensão e a tabela de fatos.

  • Reutilizando partes de pacotes. Outros pacotes podem reutilizar partes de um fluxo de trabalho de pacote. Por exemplo, você pode criar um módulo de extração de dados que pode ser chamado de diferentes pacotes. Cada pacote que chama o módulo de extração pode realizar diferentes anulações de dados, filtragem ou operações de agregação.

  • Agrupando unidades de trabalho. Unidades de trabalho podem ser encapsuladas em pacotes separados e unidas como componentes transacionais ao fluxo de trabalho de um pacote pai. Por exemplo, o pacote pai executa os pacotes acessório e, com base no sucesso ou fracasso dos pacotes acessório, o pacote pai confirma ou reverte a transação.

  • Controlando segurança de pacote. Os autores de pacote requerem acesso a apenas uma parte de uma solução de pacote múltiplo. Na separação de um pacote em vários, você pode fornecer um nível de segurança maior, porque pode conceder acesso de autor só aos pacotes relevantes.

Um pacote que executa outros pacotes geralmente é chamado de pacote pai e os pacotes que um fluxo de trabalho pai executa são chamados de pacotes filho.

A tarefa Executar Pacote pode executar pacotes armazenados no banco de dados SQL Servermsdb e pacotes armazenados no sistema de arquivos. A tarefa usa um gerenciador de conexões OLE DB para se conectar ao SQL Server e um gerenciador de conexões de Arquivo para acessar o sistema de arquivos. Para obter mais informações, consulte Gerenciador de conexões OLE DB e Gerenciador de conexões de arquivo simples.

A tarefa Executar Pacote também pode executar um plano de manutenção do banco de dados que permite a administração de pacotes SSIS e planos de manutenção de banco de dados na mesma solução Integration Services. Um plano de manutenção de banco de dados é semelhante a um pacote SSIS, mas um plano só pode incluir tarefas de manutenção de banco de dados, e sempre é armazenado em msdb. Para obter mais informações, consulte Mantendo Bancos de Dados (Mecanismo de Banco de Dados) e Tarefas de Manutenção.

Se você escolher um pacote armazenado no sistema de arquivos, forneça o nome e o local do pacote. O pacote pode residir em qualquer lugar no sistema de arquivos; não tem que estar na mesma pasta que o pacote pai.

O pacote filho pode ser executado no processo do pacote pai ou em seu próprio processo. A execução do pacote filho em seu próprio processo requer mais memória, mas oferece mais flexibilidade. Por exemplo, se o processo filho falhar, o processo pai poderá continuar sendo executado.

De modo contrário, às vezes você pode desejar que os pacotes pai e filho falhem em conjunto como uma unidade, ou que não incorra a sobrecarga adicional de outro processo. Por exemplo, se um processo filho falhar e o processamento subsequente no processo pai do pacote depender do sucesso do processo filho, o pacote filho deveria ser executado no processo do pacote pai.

Por padrão, a propriedade ExecuteOutOfProcess da tarefa Executar Pacote é definida como False, e o pacote filho é executado no mesmo processo que o pacote pai. Se você definir essa propriedade como True, só poderá depurar pacotes que contêm funcionalidade limitada. Para depurar todos os pacotes com suporte da sua edição do SQL Server, instale o Integration Services.

Estendendo transações

A transação que o pacote pai usa pode se estender ao pacote filho; logo, o trabalho que ambos os pacotes executa pode ser confirmado ou revertido. Por exemplo, o banco de dados insere que as execuções do pacote pai podem ser confirmadas ou revertidas, dependendo das inserções do banco de dados executadas pelo pacote filho, e vice-versa. Para obter mais informações, consulte Transações herdadas.

Propagando detalhes de log

O pacote filho executado pela tarefa Executar Pacote pode ou não ser configurado para usar log, mas o pacote filho sempre encaminhará os detalhes de log ao pacote pai. Se a tarefa Executar Pacote for configurada para usar log, a tarefa registrará os detalhes de log a partir do pacote filho. Para obter mais informações, consulte Implementando log em pacotes.

Passando valores a pacotes filho

Com frequência um pacote filho usa valores passados para ele por outro pacote que o chama, normalmente, seu pacote pai. Usar valores de um pacote pai é útil nos seguintes cenários:

  • Partes de um fluxo de trabalho maior são atribuídas a pacotes diferentes. Por exemplo, um pacote baixa dados em base noturna, resume os dados, atribui valores de dados resumidos a variáveis e depois passa os valores a outro pacote para processamento adicional dos dados.

  • O pacote pai coordena dinamicamente tarefas em um pacote filho. Por exemplo, o pacote pai determina o número de dias em um mês corrente e atribui o número a uma variável, e o pacote filho executa uma tarefa esse número de vezes.

  • Um pacote filho requer acesso aos dados derivados dinamicamente do pacote pai. Por exemplo, o pacote pai extrai dados de uma tabela e carrega o conjunto de linhas em uma variável, e o pacote filho executa outras operações nos dados.

Você pode usar configurações de pacote para disponibilizar valores do pacote pai para o pacote filho. O Integration Services oferece um tipo de configuração, a configuração de Variável do Pacote Pai, para passar valores de pacotes pai para pacotes filho. A configuração é construída no pacote filho e usa uma variável no pacote pai.

A variável do pacote pai pode ser definida no escopo da tarefa Executar Pacote ou em um contêiner de pai como o pacote. Se diversas variáveis estiverem disponíveis com o mesmo nome, a variável definida no escopo da tarefa Executar Pacote será usada, ou a variável que tenha o escopo mais próximo da tarefa. A configuração é então mapeada para uma variável no pacote filho, ou para a propriedade de um objeto no pacote filho. A variável também pode ser usada nos scripts utilizados pela tarefa ActiveX Script, tarefa Script ou componente Script.

Para obter mais informações, consulte Como usar os valores de variáveis pai em um pacote filho.

Outras tarefas relacionadas

O Integration Services inclui tarefas que executam operações de fluxo de trabalho, como executar pacotes, executáveis e arquivos em lote do SQL Server 2000.

Para obter mais informações sobre essas tarefas, clique em um dos seguintes tópicos:

Configurando a tarefa Executar Pacote

Você pode definir propriedades por meio do Designer SSIS ou programaticamente.

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

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

Configurando a tarefa Executar Pacote 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.