KB2583994 – LØSNING: SSIS-kontrolpunkt gendanner en forkert variabel værdi for et Execute SQL-opgaveelement i et For Loop Container-element i SSIS 2008 eller i SSIS 2008 R2, hvis en SSIS-pakke afvikles igen, efter den mislykkes eller stopper

Gælder for
SQL Server 2008 Enterprise Microsoft SQL Server 2005 Enterprise Edition SQL Server 2008 R2 Datacenter SQL Server 2008 R2 Enterprise

Microsoft distribuerer rettelser til Microsoft SQL Server 2008 Service Pack 1 (SP1) eller Microsoft SQL Server 2008 R2 som én fil, der kan downloades. Da rettelserne er kumulative, indeholder hver ny version alle de hotfixes og alle de sikkerhedsopdateringer, der fulgte med den forrige opdatering til SQL Server 2008 SP1 eller SQL Server 2008 R2.

Symptomer

Overvej følgende scenarie:

  • Du installerer Microsoft SQL Server 2008 Integration Services (SSIS 2008) eller Microsoft SQL Server 2008 R2 Integration Services (SSIS 2008 R2) på en computer.
  • Du opretter en SSIS-pakke, der indeholder to For Loop Container-elementer.
  • Du opretter to For Loop Container-omfangsvariabler for de to For Loop Container-elementer. Variablerne har samme navn.
  • Du kan bruge variablerne i egenskaberne InitExpression, EvalExpression og AssignExpression for de to For Loop Container-elementer.
  • De to For Loop Container-elementer indeholder flere Execute SQL-opgaveelementer, der kører parallelt.
  • Du aktiverer kontrolpunktindstillingen for SSIS-pakken.
  • Du kører SSIS-pakken.
  • Et af opgaverne Execute SQL Task mislykkes eller stopper, mens SSIS-pakken kører.
  • SSIS-pakken kører igen.

I dette scenarie er den variable værdi for et af Execute SQL-opgave-elementerne, der ikke mislykkedes eller stoppede, forkert.

Bemærk, at dette Execute SQL-opgaveelement er i For Loop Container-elementet, der ikke mislykkedes eller stoppede.

Overvej f.eks. følgende specifikke scenarie:

  • Du opretter en SSIS-pakke, der har to For Loop Container-elementer. Elementerne kaldes FLC01 og FLC02.
  • Du opretter en BatchNo-variabel for FLC01 og en BatchNo-variabel for FLC02.
  • Du angiver egenskaben InitExpression til @[Bruger::BatchNo] = 0.
  • Du angiver egenskaben EvalExpression til @[Bruger::BatchNo] < 10.
  • Du angiver egenskaben AssignExpression til @[Bruger::BatchNo]=@[Bruger::BatchNo]+1.
  • De to For Loop Container-elementer indeholder flere Execute SQL-opgaveelementer, der bruger en parallel eksekveringsplan.
  • Du aktiverer kontrolpunktindstillingen for SSIS-pakken.
  • Du kører SSIS-pakken.
  • One Execute SQL-opgaveelementet i FLC01 mislykkes eller stopper.
  • SSIS-pakken kører igen.

I dette scenarie er BatchNo-værdien for et af elementerne Execute SQL Task i FLC02 forkert.

Bemærk! Dette problem opstår også i Microsoft SQL Server 2008 R2 Integration Services (SSIS 2008 R2).

Årsag

Dette problem opstår på grund af en fejl i kontrolpunktvariablens gendannelseslogik.

Kontrolpunktvariablerne gendannes til de forkerte opgaver. Derfor gendannes en forkert variabel værdi.

Løsning

Oplysninger om kumulativ opdatering

SQL Server 2008 R2

Rettelsen til dette problem blev først udgivet i den samlede opdatering 11. Få flere oplysninger om, hvordan du får fat i denne kumulative opdateringspakke til SQL Server 2008 R2, ved at klikke på nedenstående artikelnummer for at få vist artiklen i Microsoft Knowledge Base:

2633145 Samlet opdateringspakke 11 til SQL Server 2008 R2 Bemærk Da builds er kumulative, indeholder hver ny rettelsesversion alle de hotfixes og sikkerhedsrettelser, der fulgte med den forrige version af SQL Server 2008 R2-rettelsen. Vi anbefaler, at du overvejer at anvende den nyeste rettelsesversion, der indeholder dette hotfix. Du kan finde flere oplysninger ved at klikke på nedenstående artikelnummer for at få vist artiklen i Microsoft Knowledge Base:

981356 De SQL Server 2008 R2-builds, der blev udgivet efter SQL Server 2008 R2 blev frigivet

SQL Server 2008 R2 Service Pack 1

Løsningen på dette problem blev først udgivet i Cumulative Update 4 til SQL Server 2008 R2 Service Pack 1. Få flere oplysninger om, hvordan du henter denne kumulative opdateringspakke, ved at klikke på nedenstående artikelnummer for at få vist artiklen i Microsoft Knowledge Base:

2633146 Samlet opdatering pakke 4 til SQL Server 2008 R2 Service Pack 1Bemærk Da builds er kumulative, indeholder hver ny rettelsesversion alle de hotfixes og alle de sikkerhedsrettelser, der fulgte med den tidligere version af SQL Server 2008 R2-rettelser. Vi anbefaler, at du overvejer at anvende den nyeste rettelsesversion, der indeholder dette hotfix. Du kan finde flere oplysninger ved at klikke på nedenstående artikelnummer for at få vist artiklen i Microsoft Knowledge Base:

2567616 De SQL Server 2008 R2-builds, der blev udgivet efter SQL Server 2008 R2 Service Pack 1 blev udgivet

SQL Server 2008 Service Pack 2

Løsningen på dette problem blev først udgivet i Cumulative Update 7 til SQL Server 2008 Service Pack 2. Få flere oplysninger om denne samlede opdateringspakke ved at klikke på nedenstående artikelnummer for at få vist artiklen i Microsoft Knowledge Base:

2617148 Samlet opdateringspakke 7 til SQL Server 2008 Service Pack 2Note Da builds er kumulative, indeholder hver ny rettelsesversion alle de hotfixes og alle de sikkerhedsrettelser, der fulgte med den forrige version af SQL Server 2008-rettelser. Microsoft anbefaler, at du overvejer at anvende den nyeste version af rettelsen, der indeholder dette hotfix. Du kan finde flere oplysninger ved at klikke på nedenstående artikelnummer for at få vist artiklen i Microsoft Knowledge Base:

2402659 De SQL Server 2008-builds, der blev udgivet efter SQL Server 2008 Service Pack 2 blev udgivet Microsoft SQL Server 2008-hotfixes oprettes til specifikke SQL Server servicepakker. Du skal anvende et SQL Server 2008 Service Pack 2-hotfix på en installation af SQL Server 2008 Service Pack 2. Alle hotfixes, der leveres i en SQL Server Service Pack, er som standard inkluderet i den næste SQL Server Service Pack.

Samlet opdateringspakke 16 til SQL Server 2008 SP1

Løsningen på dette problem blev først udgivet i samlet opdateringspakke 16 til SQL Server 2008 SP1. Få flere oplysninger om, hvordan du får fat i denne kumulative opdateringspakke til SQL Server 2008 SP1, ved at klikke på nedenstående artikelnummer for at få vist artiklen i Microsoft Knowledge Base:

2582282 samlet opdateringspakke 16 til SQL Server 2008 Service Pack 1Bemærk Da builds er kumulative, indeholder hver ny opdatering alle de hotfixes og sikkerhedsopdateringer, som fulgte med den forrige SQL Server 2008 SP1-opdatering. Vi anbefaler, at du overvejer at anvende den seneste opdatering, der indeholder dette hotfix. Du kan finde flere oplysninger ved at klikke på nedenstående artikelnummer for at få vist artiklen i Microsoft Knowledge Base:

970365 De SQL Server 2008-builds, der blev udgivet efter SQL Server 2008 Service Pack 1 blev udgivet

Løsning

Du kan løse dette problem ved at bruge et andet variabelnavn for hvert For Loop Container-element.

Status

Microsoft har bekræftet, at dette er et problem i de Microsoft-produkter, der er angivet i afsnittet "Gælder for".