Microsoft distribuuje opravy pro Microsoft SQL Server 2008 Service Pack 1 (SP1) nebo Microsoft SQL Server 2008 R2 jako jeden soubor ke stažení. Vzhledem k tomu, že opravy jsou kumulativní, obsahuje každá nová verze všechny opravy hotfix a všechny aktualizace zabezpečení, které byly součástí předchozího vydání aktualizace pro SQL Server 2008 SP1 nebo SQL Server 2008 R2.
Příznaky
Vezměte v úvahu následující scénář:
- Nainstalujete do počítače Microsoft SQL Server 2008 Integration Services (SSIS 2008) nebo Microsoft SQL Server 2008 R2 Integration Services (SSIS 2008 R2).
- Vytvoříte balíček SSIS, který obsahuje dvě položky kontejneru For Loop.
- Vytvoříte dvě proměnné oboru kontejneru For Loop pro dvě položky kontejneru For Loop. Proměnné mají stejný název.
- Proměnné použijete ve vlastnostech InitExpression, EvalExpression a AssignExpression pro dvě For Loop Container položky.
- Dvě položky kontejneru For Loop obsahují několik položek úlohy Execute SQL, které běží paralelně.
- Povolíte nastavení kontrolního bodu pro balíček SSIS.
- Spusťte balíček SSIS.
- Jedna z položek Execute SQL Task selže nebo se zastaví při spuštění balíčku SSIS.
- Balíček SSIS se spustí znovu.
V tomto scénáři je hodnota proměnné pro jednu z položek úlohy Execute SQL, která neselhala nebo se nezastavila, nesprávná.
Poznámka: Tato položka úlohy SQL je v položce kontejneru For Loop, která neselhala ani se nezastavila.
Podívejte se například na následující specifický scénář:
- Vytvoříte balíček SSIS, který má dvě položky kontejneru For Loop. Položky jsou pojmenovány FLC01 a FLC02.
- Proměnnou BatchNo vytvoříte pro FLC01 a proměnnou BatchNo pro FLC02.
- Vlastnost InitExpression nastavíte na @[User::BatchNo] = 0.
- Vlastnost EvalExpression nastavíte na @[User::BatchNo] < 10.
- Vlastnost AssignExpression nastavíte na @[User::BatchNo]=@[User::BatchNo]+1.
- Dvě položky kontejneru For Loop obsahují několik položek úloh SQL Execute, které používají paralelní plán provádění.
- Povolíte nastavení kontrolního bodu pro balíček SSIS.
- Spusťte balíček SSIS.
- Jedna položka Execute SQL Task ve FLC01 selže nebo se zastaví.
- Balíček SSIS se spustí znovu.
V tomto scénáři je hodnota BatchNo pro jednu z položek úlohy Execute SQL ve FLC02 nesprávná.
Poznámka: K tomuto problému dochází také v integrační službě Microsoft SQL Server 2008 R2 (SSIS 2008 R2).
Příčina
K tomuto problému dochází z důvodu chyby v logice obnovení proměnné kontrolního bodu.
Proměnné kontrolního bodu jsou obnoveny na nesprávné úkoly. Proto je obnovena nesprávná hodnota proměnné.
Řešení
Informace o kumulativní aktualizaci
SQL Server 2008 R2
Oprava tohoto problému byla poprvé vydána v kumulativní aktualizaci 11. Další informace o získání tohoto balíčku kumulativní aktualizace pro SQL Server 2008 R2 naleznete v následujícím článku znalostní báze znalostní báze Microsoft Knowledge Base:
2633145 Balíček kumulativní aktualizace 11 pro SQL Server 2008 R2 Poznámka: Buildy jsou kumulativní, a proto každá nová verze opravy obsahuje všechny opravy hotfix a všechny opravy zabezpečení, které byly součástí předchozího vydání opravy SQL Server 2008 R2. Doporučujeme zvážit použití nejnovější verze opravy, která obsahuje tuto opravu hotfix. Další informace naleznete v následujícím článku znalostní báze znalostní báze Microsoft Knowledge Base:
981356 Buildy SQL Server 2008 R2, které byly vydány po vydání verze SQL Server 2008 R2
SQL Server 2008 R2 Service Pack 1
Oprava tohoto problému byla poprvé vydána v kumulativní aktualizaci 4 pro SQL Server 2008 R2 Service Pack 1. Další informace o získání tohoto balíčku kumulativní aktualizace naleznete v následujícím článku znalostní báze znalostní báze Microsoft Knowledge Base:
2633146 Balíček kumulativní aktualizace 4 pro SQL Server 2008 R2 Service Pack 1Poznámka: Vzhledem k tomu, že buildy jsou kumulativní, obsahuje každá nová verze opravy všechny opravy hotfix a všechny opravy zabezpečení, které byly součástí předchozí verze opravy SQL Server 2008 R2. Doporučujeme zvážit použití nejnovější verze opravy, která obsahuje tuto opravu hotfix. Další informace naleznete v následujícím článku znalostní báze znalostní báze Microsoft Knowledge Base:
2567616 Buildy SQL Server 2008 R2, které byly vydány po vydání aktualizace Service Pack 1 SQL Server 2008 R2
SQL Server 2008 Service Pack 2
Oprava tohoto problému byla poprvé vydána v kumulativní aktualizaci 7 pro SQL Server 2008 Service Pack 2. Další informace o tomto balíčku kumulativních aktualizací naleznete v následujícím článku znalostní báze znalostní báze Microsoft Knowledge Base:
2617148 Balíček kumulativní aktualizace 7 pro SQL Server 2008 Service Pack 2Poznámka Vzhledem k tomu, že buildy jsou kumulativní, obsahuje každá nová verze opravy všechny opravy hotfix a všechny opravy zabezpečení, které byly součástí předchozí verze opravy pro SQL Server 2008. Společnost Microsoft doporučuje zvážit použití nejnovější verze opravy, která obsahuje tuto opravu hotfix. Další informace naleznete v následujícím článku znalostní báze znalostní báze Microsoft Knowledge Base:
2402659 Buildy SQL Server 2008 vydané po vydání aktualizace Service Pack 2 SQL Server 2008 Opravy hotfix pro Microsoft SQL Server 2008 se vytváří pro konkrétní SQL Server aktualizace Service Pack. Opravu hotfix pro SQL Server 2008 Service Pack 2 je nutné nainstalovat pro instalaci systému SQL Server 2008 Service Pack 2. Ve výchozím nastavení jsou všechny opravy hotfix poskytované v aktualizaci Service Pack pro SQL Server zahrnuty do další aktualizace Service Pack pro SQL Server.
Balíček kumulativní aktualizace 16 pro SQL Server 2008 SP1
Oprava, která tento problém řeší, byla poprvé vydána v balíčku kumulativní aktualizace č. 16 pro SQL Server 2008 SP1. Další informace o získání tohoto balíčku kumulativních aktualizací pro SQL Server 2008 SP1 naleznete v následujícím článku znalostní báze znalostní báze Microsoft Knowledge Base:
2582282 Balíček kumulativní aktualizace 16 pro SQL Server 2008 Service Pack 1Poznámka: Vzhledem k tomu, že buildy jsou kumulativní, obsahuje každé nové vydání aktualizace všechny opravy hotfix a všechny aktualizace zabezpečení, které byly součástí předchozího vydání aktualizace SQL Server 2008 SP1. Doporučujeme, abyste zvážili použití nejnovější verze aktualizace, která obsahuje tuto opravu hotfix. Další informace naleznete v následujícím článku znalostní báze znalostní báze Microsoft Knowledge Base:
970365 Buildy SQL Server 2008 vydané po vydání aktualizace Service Pack 1 SQL Server 2008
Alternativní řešení
Pokud chcete tento problém obejít, použijte pro každou položku kontejneru For Loop jiný název proměnné.
Stav
Společnost Microsoft potvrdila, že se jedná o problém produktů Microsoft, které jsou uvedeny v sekci Platí pro.