Microsoft は、Microsoft SQL Server 2008 Service Pack 1 (SP1) または Microsoft SQL Server 2008 R2 の修正プログラムを1つのダウンロード可能なファイルとして配布します。 修正プログラムは累積的であるため、新しいリリースごとに、以前の SQL Server 2008 SP1 または SQL Server 2008 R2 更新プログラムのリリースに含まれていたすべての修正プログラムとセキュリティ更新プログラムが含まれています。
現象
次のような状況で問題が発生します。
-
コンピューターに Microsoft SQL Server 2008 Integration Services (SSIS 2008) または Microsoft SQL Server 2008 R2 Integration Services (SSIS 2008 R2) をインストールします。
-
2つ のループコンテナー項目を 含む SSIS パッケージを作成します。
-
この2つの for Loop コンテナー項目に対して、ループコンテナーのスコープ変数を2つ作成します。 変数の名前は同じです。
-
この2つのループコンテナー項目では、 initexpression、 evalexpression、および and式プロパティの変数を使用します。
-
2つ の For Loop コンテナ 項目には、並列で実行される複数の Execute SQL タスク 項目が含まれています。
-
SSIS パッケージの チェックポイント 設定を有効にします。
-
SSIS パッケージを実行します。
-
SSIS パッケージの実行中に、 SQL 実行タスク 項目のいずれかが失敗または停止する。
-
SSIS パッケージをもう一度実行します。
このシナリオでは、失敗または停止していない EXECUTE SQL タスク 項目のいずれかの変数値が正しくありません。注: この SQL 実行タスク 項目は、失敗または停止していない for Loop コンテナー 項目内にあります。たとえば、次の特定のシナリオについて考えてみます。
-
2つ のループコンテナー 項目を持つ SSIS パッケージを作成します。 項目には、FLC01 と FLC02 という名前が付けられます。
-
FLC01 用の Batchno 変数と、FLC02 用 batchno 変数を作成します。
-
Initexpressionプロパティを@ [User:: batchno] = 0に設定します。
-
Evalexpressionプロパティを@ [User:: batchno] < 10に設定します。
-
割り当て 式 プロパティは、 @ [User:: batchno] = @ [User:: batchno] + 1に設定します。
-
この2つ のループコンテナー 項目には、並列実行プランを使う複数の Execute SQL タスク 項目が含まれています。
-
SSIS パッケージの チェックポイント 設定を有効にします。
-
SSIS パッケージを実行します。
-
FLC01 の1つの EXECUTE SQL タスク 項目が失敗するか、停止します。
-
SSIS パッケージをもう一度実行します。
このシナリオでは、FLC02 のいずれかのSQL 実行タスク項目のbatchno値が正しくありません。注: この問題は、Microsoft SQL Server 2008 R2 Integration Services (SSIS 2008 R2) でも発生します。
原因
この問題は、 Checkpoint 変数の復元ロジックの問題が原因で発生します。 チェックポイント変数が間違ったタスクに復元されます。 そのため、不適切な変数値が復元されます。
解決方法
累積的な更新プログラムの情報
SQL Server 2008 R2
この問題の修正プログラムは、累積更新プログラム11で最初にリリースされました。SQL Server 2008 R2 用の累積的な更新プログラムパッケージの入手方法の詳細については、次の記事番号をクリックして、Microsoft サポート技術情報の記事を参照してください。
2633145 SQL Server 2008 R2 の累積更新プログラムパッケージ11 注: ビルドは累積的であるため、各新しい修正プログラムには、以前の SQL Server 2008 R2 fix release に含まれていたすべての修正プログラムとセキュリティ修正プログラムが含まれています。 この修正プログラムを含む最新の修正プログラムを適用することを検討することをお勧めします。 詳細については、次のマイクロソフト サポート技術情報番号をクリックしてください。
981356 SQL Server 2008 R2 のリリース後にリリースされた SQL Server 2008 R2 ビルド
SQL Server 2008 R2 Service Pack 1
この問題の修正プログラムは、SQL Server 2008 R2 Service Pack 1 の累積更新プログラム4で最初にリリースされました。この累積的な更新プログラムパッケージの入手方法の詳細については、次の記事番号をクリックして、Microsoft サポート技術情報の記事を参照してください。
2633146 SQL Server 2008 R2 Service Pack 1 の累積更新プログラムパッケージ4注: ビルドは累積的であるため、各新しい修正プログラムには、以前の SQL Server 2008 R2 fix release に含まれていたすべての修正プログラムとセキュリティ修正プログラムが含まれています。 この修正プログラムを含む最新の修正プログラムを適用することを検討することをお勧めします。 詳細については、次のマイクロソフト サポート技術情報番号をクリックしてください。
2567616 SQL Server 2008 R2 Service Pack 1 がリリースされた後にリリースされた SQL Server 2008 R2 ビルド
SQL Server 2008 Service Pack 2
この問題の修正プログラムは、SQL Server 2008 Service Pack 2 の累積更新プログラム7で最初にリリースされました。この累積的な更新プログラムパッケージの詳細については、次の記事番号をクリックして、Microsoft サポート技術情報の記事を参照してください。
2617148 累積的な更新プログラムパッケージ 7 (SQL Server 2008 Service Pack 2)注: ビルドは累積的であるため、それぞれの新しい修正プログラムには、以前の SQL Server 2008 fix release に含まれていたすべての修正プログラムとセキュリティ修正プログラムが含まれています。 この修正プログラムを含む最新の修正プログラムを適用することを検討することをお勧めします。 詳細については、次のマイクロソフト サポート技術情報番号をクリックしてください。
2402659 SQL Server 2008 Service Pack 2 がリリースされた後にリリースされた SQL Server 2008 ビルド Microsoft SQL Server 2008 修正プログラムは、特定の SQL Server サービスパック用に作成されます。 Sql server 2008 Service Pack 2 をインストールするには、SQL Server 2008 Service Pack 2 の修正プログラムを適用する必要があります。 既定では、SQL Server service pack に含まれているすべての修正プログラムは、次の SQL Server service pack に含まれています。
SQL Server 2008 SP1 の累積更新プログラムパッケージ16
この問題の修正プログラムは、SQL Server 2008 SP1 の累積的な更新プログラムパッケージ16で最初にリリースされました。SQL Server 2008 SP1 用の累積的な更新プログラムパッケージの入手方法の詳細については、次の記事番号をクリックして、Microsoft サポート技術情報の記事を参照してください。
2582282 SQL Server 2008 Service Pack 1 の累積更新プログラムパッケージ16注: ビルドは累積的であるため、新しい更新プログラムの各リリースには、以前の SQL Server 2008 SP1 更新プログラムのリリースに含まれていたすべての修正プログラムとセキュリティ更新プログラムが含まれています。 この修正プログラムを含む最新の更新プログラムのリリースを適用することを検討することをお勧めします。 詳細については、次のマイクロソフト サポート技術情報番号をクリックしてください。
970365 SQL Server 2008 Service Pack 1 がリリースされた後にリリースされた SQL Server 2008 ビルド
回避策
この問題を回避するには、for Loop コンテナー 項目ごとに別の変数名を使用します。
状態
マイクロソフトでは、この問題をこの資料の対象製品として記載されているマイクロソフト製品の問題として認識しています。