KB2583994-FIX: checkpoint SSIS consente di ripristinare un valore di variabile non corretto per un elemento dell'attività Esegui SQL di un elemento contenitore di ciclo for in SSIS 2008 o in SSIS 2008 R2 se un pacchetto SSIS viene eseguito di nuovo dopo il failover o l'interruzione

Microsoft distribuisce Microsoft SQL Server 2008 Service Pack 1 (SP1) o Microsoft SQL Server 2008 R2 correzioni come un file scaricabile. Poiché le correzioni sono cumulative, ogni nuova versione contiene tutti gli hotfix e tutti gli aggiornamenti della sicurezza inclusi nella versione di aggiornamento precedente di SQL Server 2008 SP1 o SQL Server 2008 R2.

Sintomi

Considerare lo scenario descritto di seguito:

  • Si installa Microsoft SQL Server 2008 Integration Services (SSIS 2008) o Microsoft SQL Server 2008 R2 Integration Services (SSIS 2008 R2) in un computer.

  • Si crea un pacchetto SSIS che contiene due elementi contenitore per il ciclo .

  • Puoi creare due variabili per l'ambito del contenitore di cicli per i due elementi contenitore ciclo . Le variabili hanno lo stesso nome.

  • Puoi usare le variabili nelle proprietà InitExpression, EvalExpressione AssignExpression per i due elementi contenitore ciclo .

  • I due elementi contenitore di ciclo for contengono più elementi di attività di esecuzione SQL eseguiti in parallelo.

  • Si Abilita l'impostazione Checkpoint per il pacchetto SSIS.

  • Si esegue il pacchetto SSIS.

  • Uno degli elementi di attività Esegui SQL non riesce o si arresta durante l'esecuzione del pacchetto SSIS.

  • Il pacchetto SSIS viene eseguito di nuovo.

In questo scenario, il valore della variabile per uno degli elementi di attività Esegui SQL che non hanno esito negativo o stop non è corretto.Nota Questo elemento attività Esegui SQL si trova nell'elemento contenitore ciclo for che non ha avuto esito negativo o non si è fermato. Consideriamo ad esempio lo scenario specifico seguente:

  • Si crea un pacchetto SSIS con due elementi contenitore ciclo for . Gli elementi sono denominati FLC01 e FLC02.

  • Crei una variabile BatchNo per FLC01 e una variabile BatchNo per FLC02.

  • Si imposta la proprietà InitExpression su @ [user:: BatchNo] = 0.

  • Si imposta la proprietà EvalExpression su @ [user:: BatchNo] < 10.

  • Si imposta la proprietà AssignExpression su @ [user:: BatchNo] = @ [user:: BatchNo] + 1.

  • I due elementi contenitore di ciclo for contengono più elementi di attività di esecuzione SQL che usano un piano di esecuzione parallelo.

  • Si Abilita l'impostazione Checkpoint per il pacchetto SSIS.

  • Si esegue il pacchetto SSIS.

  • Un elemento attività Esegui SQL in FLC01 non riesce o si arresta.

  • Il pacchetto SSIS viene eseguito di nuovo.

In questo scenario, il valore BatchNo per uno degli elementi di attività Esegui SQL in FLC02 non è corretto.Nota Questo problema si verifica anche in Microsoft SQL Server 2008 R2 Integration Services (SSIS 2008 R2).

Causa

Questo problema si verifica a causa di un difetto nella logica di ripristino della variabile Checkpoint . Le variabili di Checkpoint vengono ripristinate nelle attività errate. Viene quindi ripristinato un valore di variabile non corretto.

Risoluzione

Informazioni sull'aggiornamento cumulativo

SQL Server 2008 R2

La correzione di questo problema è stata rilasciata per la prima volta nell'aggiornamento cumulativo 11. Per altre informazioni su come ottenere questo pacchetto di aggiornamento cumulativo per SQL Server 2008 R2, fare clic sul numero dell'articolo seguente per visualizzare l'articolo della Microsoft Knowledge Base:

2633145 Pacchetto di aggiornamento cumulativo 11 per SQL Server 2008 R2 Nota Poiché le build sono cumulative, ogni nuova versione di correzione contiene tutti gli hotfix e tutti gli aggiornamenti della sicurezza inclusi nella versione precedente di SQL Server 2008 R2 Fix. Ti consigliamo di considerare l'applicazione della versione di correzione più recente che contiene questo hotfix. Per ulteriori informazioni, fare clic sul numero dell'articolo seguente per visualizzare l'articolo nella Microsoft Knowledge Base:

981356 Build di SQL Server 2008 R2 rilasciate dopo il rilascio di SQL Server 2008 R2

SQL Server 2008 R2 Service Pack 1

La correzione di questo problema è stata rilasciata per la prima volta in aggiornamento cumulativo 4 per SQL Server 2008 R2 Service Pack 1. Per altre informazioni su come ottenere questo pacchetto di aggiornamento cumulativo, fare clic sul numero dell'articolo della Microsoft Knowledge Base seguente per visualizzare l'articolo:

2633146 Pacchetto di aggiornamento cumulativo 4 per SQL Server 2008 R2 Service Pack 1Nota Poiché le build sono cumulative, ogni nuova versione di correzione contiene tutti gli hotfix e tutti gli aggiornamenti della sicurezza inclusi nella versione precedente di SQL Server 2008 R2 Fix. Ti consigliamo di considerare l'applicazione della versione di correzione più recente che contiene questo hotfix. Per ulteriori informazioni, fare clic sul numero dell'articolo seguente per visualizzare l'articolo nella Microsoft Knowledge Base:

2567616 Le build di SQL Server 2008 R2 rilasciate dopo il rilascio di SQL Server 2008 R2 Service Pack 1

SQL Server 2008 Service Pack 2

La correzione di questo problema è stata rilasciata per la prima volta in aggiornamento cumulativo 7 per SQL Server 2008 Service Pack 2. Per altre informazioni su questo pacchetto di aggiornamento cumulativo, fare clic sul numero dell'articolo della Microsoft Knowledge Base seguente per visualizzare l'articolo:

2617148 Pacchetto di aggiornamento cumulativo 7 per SQL Server 2008 Service Pack 2Nota Poiché le build sono cumulative, ogni nuova versione di correzione contiene tutti gli hotfix e tutti gli aggiornamenti della sicurezza inclusi nella versione precedente di SQL Server 2008 FIX. Microsoft consiglia di applicare l'ultima versione di correzione che contiene questo hotfix. Per ulteriori informazioni, fare clic sul numero dell'articolo seguente per visualizzare l'articolo nella Microsoft Knowledge Base:

2402659 Build di SQL Server 2008 rilasciate dopo il rilascio di SQL Server 2008 Service Pack 2 Microsoft SQL Server 2008 hotfix vengono creati per specifici Service Pack di SQL Server. È necessario applicare un hotfix di SQL Server 2008 Service Pack 2 a un'installazione di SQL Server 2008 Service Pack 2. Per impostazione predefinita, qualsiasi hotfix fornito in un Service Pack di SQL Server è incluso nel prossimo Service Pack di SQL Server.

Pacchetto di aggiornamento cumulativo 16 per SQL Server 2008 SP1

La correzione di questo problema è stata rilasciata per la prima volta nel pacchetto di aggiornamento cumulativo 16 per SQL Server 2008 SP1. Per altre informazioni su come ottenere questo pacchetto di aggiornamento cumulativo per SQL Server 2008 SP1, fare clic sul numero dell'articolo seguente per visualizzare l'articolo della Microsoft Knowledge Base:

2582282 Pacchetto di aggiornamento cumulativo 16 per SQL Server 2008 Service Pack 1Nota Poiché le compilazioni sono cumulative, ogni nuova versione di aggiornamento contiene tutti gli hotfix e tutti gli aggiornamenti della sicurezza inclusi nella versione di aggiornamento precedente di SQL Server 2008 SP1. Ti consigliamo di considerare l'applicazione della versione di aggiornamento più recente che contiene questo hotfix. Per ulteriori informazioni, fare clic sul numero dell'articolo seguente per visualizzare l'articolo nella Microsoft Knowledge Base:

970365 Build di SQL Server 2008 rilasciate dopo il rilascio di SQL Server 2008 Service Pack 1

Soluzione alternativa

Per risolvere il problema, usare un nome di variabile diverso per ogni elemento contenitore ciclo .

Stato

Microsoft ha confermato che questo problema si verifica nei prodotti elencati nella sezione "Si applica a".

Serve aiuto?

Amplia le tue competenze
Esplora i corsi di formazione
Ottieni in anticipo le nuove caratteristiche
Partecipa a Microsoft Insider

Queste informazioni sono risultate utili?

Grazie per il feedback!

Grazie per il tuo feedback! Potrebbe essere utile metterti in contatto con uno dei nostri operatori del supporto di Office.

×