KB2583994 - FIX: O Controlo de Controlo SSIS restaura um valor variável incorreto para um item de tarefa executável SQL de um item para o recipiente de loop no SSIS 2008 ou no SSIS 2008 R2 se um pacote SSIS executar novamente depois de falhar ou parar

A Microsoft distribui o Microsoft SQL Server 2008 Service Pack 1 (SP1) ou o Microsoft SQL Server 2008 R2 como um ficheiro transferível. Como as correções são cumulativas, cada nova versão contém todos os hotfixes e todas as atualizações de segurança que foram incluídas com o anterior lançamento da atualização SQL Server 2008 SP1 ou SQL Server 2008 R2.

Sintomas

Considere o seguinte cenário:

  • Instala os Serviços de Integração do Microsoft SQL Server 2008 (SSIS 2008) ou do Microsoft SQL Server 2008 R2 Integration Services (SSIS 2008 R2) num computador.

  • Cria um pacote SSIS que contém dois itens para o recipiente loop.

  • Cria duas variáveis de alcance para o recipiente loop para os dois itens para o recipiente loop. As variáveis têm o mesmo nome.

  • Utiliza as variáveis nas propriedades InitExpression,EvalExpressione AssignExpression para os dois itens para recipientes de loop.

  • Os dois itens para o recipiente loop contêm vários itens de tarefa de execução SQL que funcionam em paralelo.

  • Ativa a definição de Checkpoint para o pacote SSIS.

  • Você dirige o pacote SSIS.

  • Um dos itens de tarefa executo SQL falha ou para enquanto o pacote SSIS funciona.

  • O pacote SSIS volta a funcionar.

Neste cenário, o valor variável de um dos itens de Tarefa Executo SQL que não falhou ou parou está incorreto.Nota Este item de tarefa executável SQL está no item para o recipiente loop que não falhou ou parou. Por exemplo, considere o seguinte cenário específico:

  • Cria um pacote SSIS que tem dois itens para o recipiente loop. Os artigos são chamados FLC01 e FLC02.

  • Cria-se uma variável BatchNo para FLC01 e uma variável BatchNo para FLC02.

  • Você definiu a propriedade InitExpression para @[User::BatchNo] = 0.

  • Você definiu a propriedade EvalExpression para @[User::BatchNo] < 10.

  • Definiu a propriedade AssignExpression para @[User::BatchNo]=@[User::BatchNo]+1.

  • Os dois itens para o recipiente loop contêm vários itens de tarefa executo SQL que utilizam um plano de execução paralelo.

  • Ativa a definição de Checkpoint para o pacote SSIS.

  • Você dirige o pacote SSIS.

  • Um item de tarefa de execução SQL em FLC01 falha ou para.

  • O pacote SSIS volta a funcionar.

Neste cenário, o valor BatchNo para um dos itens de tarefa executou SQL em FLC02 está incorreto.Nota Este problema ocorre também nos Serviços de Integração R2 do Microsoft SQL Server 2008 (SSIS 2008 R2).

Causa

Esta questão ocorre devido a um defeito na lógica de restauro da variável Checkpoint. As variáveis Checkpoint são restauradas às tarefas erradas. Portanto, um valor variável incorreto é restaurado.

Resolução

Informação de atualização cumulativa

SQL Server 2008 R2

A correção para este problema foi lançada pela primeira vez na Atualização Cumulativa 11. Para obter mais informações sobre como obter este pacote de atualização cumulativa para SQL Server 2008 R2, clique no seguinte número de artigo para ver o artigo na Base de Conhecimento da Microsoft:

2633145 Pacote de atualização cumulativa 11 para SQL Server 2008 R2 Nota Como as construções são cumulativas, cada nova versão de correção contém todos os hotfixes e todas as correções de segurança que foram incluídas com o anterior lançamento de correção R2008 do SQL Server 2008. Recomendamos que considere aplicar o mais recente lançamento de correção que contém este hotfix. Para mais informações, clique no número de artigo que se segue para ver o artigo na Base de Dados de Conhecimento Microsoft:

981356 O SQL Server 2008 R2 constrói que foram lançados após o lançamento do SQL Server 2008 R2

Sql Server 2008 R2 Service Pack 1

A correção para este problema foi lançada pela primeira vez na Atualização Cumulativa 4 para SQL Server 2008 R2 Service Pack 1. Para obter mais informações sobre como obter este pacote de atualização cumulativa, clique no seguinte número de artigo para ver o artigo na Base de Conhecimento da Microsoft:

2633146 Pacote de atualização cumulativo 4 para SQL Server 2008 R2 Service Pack 1Nota Como as construções são cumulativas, cada nova versão de correção contém todos os hotfixes e todas as correções de segurança que foram incluídas com o anterior lançamento de correção R2008 do SQL Server 2008. Recomendamos que considere aplicar o mais recente lançamento de correção que contém este hotfix. Para mais informações, clique no número de artigo que se segue para ver o artigo na Base de Dados de Conhecimento Microsoft:

2567616 O SQL Server 2008 R2 constrói que foram lançados após o lançamento do SQL Server 2008 R2 Service Pack 1

Pacote de serviço SQL Server 2008 2

A correção para este problema foi lançada pela primeira vez na Cumulativa Update 7 para SQL Server 2008 Service Pack 2. Para obter mais informações sobre este pacote de atualização cumulativa, clique no seguinte número de artigo para ver o artigo na Base de Conhecimento da Microsoft:

2617148 Pacote de atualização cumulativo 7 para SQL Server 2008 Service Pack 2Nota Como as construções são cumulativas, cada nova versão de correção contém todos os hotfixes e todas as correções de segurança que foram incluídas com o anterior lançamento de correção SQL Server 2008. A Microsoft recomenda que considere aplicar o mais recente lançamento de correção que contém este hotfix. Para mais informações, clique no número de artigo que se segue para ver o artigo na Base de Dados de Conhecimento Microsoft:

2402659 O SQL Server 2008 constrói que foram lançados após o lançamento do SQL Server 2008 Service Pack 2 Os hotfixes do Microsoft SQL Server 2008 são criados para pacotes específicos de serviços sql Server. Tem de aplicar um hotfix SQL Server 2008 Service Pack 2 a uma instalação do SQL Server 2008 Service Pack 2. Por predefinição, qualquer hotfix que seja fornecido num pacote de serviços SQL Server está incluído no próximo pacote de serviços sql Server.

Pacote de atualização cumulativo 16 para SQL Server 2008 SP1

A correção para este problema foi lançada pela primeira vez no pacote de atualização cumulativo 16 para o SQL Server 2008 SP1. Para obter mais informações sobre como obter este pacote de atualização cumulativa para SQL Server 2008 SP1, clique no seguinte número de artigo para ver o artigo na Base de Conhecimento da Microsoft:

2582282 Pacote de atualização cumulativo 16 para SQL Server 2008 Service Pack 1Nota Como as construções são cumulativas, cada nova versão da atualização contém todos os hotfixes e todas as atualizações de segurança que foram incluídas com o anterior lançamento da atualização SP1 do SQL Server 2008. Recomendamos que considere aplicar o mais recente lançamento de atualização que contém este hotfix. Para mais informações, clique no número de artigo que se segue para ver o artigo na Base de Dados de Conhecimento Microsoft:

970365 O SQL Server 2008 constrói que foram lançados após o lançamento do SQL Server 2008 Service Pack 1

Solução

Para contornar esta questão, utilize um nome variável diferente para cada item para o recipiente loop.

Estado

A Microsoft confirmou que este problema ocorre nos produtos da Microsoft listados na secção "Aplica-se a".

Precisa de mais ajuda?

Aumente os seus conhecimentos
Explore as formações
Seja o primeiro a obter novas funcionalidades
Aderir ao Microsoft insiders

As informações foram úteis?

Obrigado pelos seus comentários!

Obrigado pelo seu feedback! Parece que poderá ser benéfico reencaminhá-lo para um dos nossos agentes de suporte do Office.

×