Microsoft SQL Server 2008 с пакетом обновления 1 (SP1) или Microsoft SQL Server 2008 R2 исправляет ошибки в одном загружаемом файле. Поскольку исправления носят кумулятивный характер, каждый новый выпуск содержит все исправления и все обновления для системы безопасности, которые были включены в более ранний выпуск SQL Server 2008 с пакетом обновления 1 (SP1) или SQL Server 2008 R2.
Проблемы
Рассмотрим следующий сценарий.
-
На компьютере устанавливаются службы интеграции Microsoft SQL Server 2008 (SSIS 2008) или Microsoft SQL Server 2008 R2 (SSIS 2008 R2).
-
Вы создаете пакет служб SSIS, который состоит из двух элементов контейнера for .
-
Вы создаете две переменные области циклов for для двух элементов контейнера циклов . Переменные имеют одинаковое имя.
-
Переменные в свойствах InitExpression, EvalExpressionи AssignExpression используются для двух элементов контейнера for .
-
Два элемента контейнера «цикл по элементам» содержат несколько элементов задач «Выполнение SQL », выполняемых параллельно.
-
Вы включаете параметр контрольной точки для пакета служб SSIS.
-
Вы запускаете пакет служб SSIS.
-
Один из элементов задачи «Выполнение SQL » не завершается или останавливается, пока выполняется пакет служб SSIS.
-
Пакет служб SSIS снова запускается.
В этом сценарии значение переменной для одного из элементов задачи « Выполнение SQL », которое не завершилось сбоем или остановлено, является неверным.Примечание. Этот элемент задачи «Выполнение SQL » находится в элементе контейнера «цикл по элементам», который не был пройден или остановлен. Например, можно использовать следующий сценарий:
-
Вы создаете пакет служб SSIS с двумя элементами контейнера циклов . Элементы именуются FLC01 и FLC02.
-
Вы создаете переменную BatchNo для FLC01 и переменную BatchNo для FLC02.
-
Для свойства InitExpression задано значение @ [User:: BatchNo] = 0.
-
Для свойства EvalExpression задано значение @ [User:: BatchNo] < 10.
-
Для свойства AssignExpression задано значение @ [User:: BatchNo] = @ [User:: BatchNo] + 1.
-
Два элемента контейнера «цикл по элементам» содержат несколько элементов задач «Выполнение SQL », использующих план параллельного выполнения.
-
Вы включаете параметр контрольной точки для пакета служб SSIS.
-
Вы запускаете пакет служб SSIS.
-
Выполнение одного элемента задачи SQL в FLC01 завершается сбоем или останавливается.
-
Пакет служб SSIS снова запускается.
В этом сценарии значение BatchNo для одного из элементов задачи « Выполнение SQL » в FLC02 является неправильным.Примечание. Эта проблема также возникает в службах интеграции Microsoft SQL Server 2008 R2 (SSIS 2008 R2).
Причина
Эта проблема возникает из-за ошибки в логике восстановления переменной контрольной точки . Переменные контрольной точки восстанавливаются в неправильное выполнение задач. Следовательно, восстанавливается неправильное значение переменной.
Решение
Сведения о накопительном пакете обновления
SQL Server 2008 R2
Исправление для этой проблемы впервые выпущено в накопительном обновлении 11. Для получения дополнительных сведений о том, как получить этот накопительный пакет обновления для SQL Server 2008 R2, щелкните следующий номер статьи базы знаний Майкрософт:
2633145 Накопительный пакет обновления 11 для SQL Server 2008 R2 Примечание. Поскольку сборки являются кумулятивными, каждый новый выпуск исправлений содержит все исправления и все исправления безопасности, которые были включены в предыдущий выпуск исправлений для SQL Server 2008 R2. Рекомендуется установить последнюю версию исправления, которая включает это исправление. Дополнительные сведения см. в следующей статье базы знаний Майкрософт:
981356 Сборки SQL Server 2008 R2, выпущенные после выпуска SQL Server 2008 R2
SQL Server 2008 R2 с пакетом обновления 1 (SP1)
Исправление для этой проблемы впервые выпущено в накопительном обновлении 4 для SQL Server 2008 R2 с пакетом обновления 1 (SP1). Для получения дополнительных сведений о том, как получить этот накопительный пакет обновления, щелкните следующий номер статьи базы знаний Майкрософт:
2633146 Накопительный пакет обновления 4 для SQL Server 2008 R2 с пакетом обновления 1 (SP1)Примечание. Поскольку сборки являются кумулятивными, каждый новый выпуск исправлений содержит все исправления и все исправления безопасности, которые были включены в предыдущий выпуск исправлений для SQL Server 2008 R2. Рекомендуется установить последнюю версию исправления, которая включает это исправление. Дополнительные сведения см. в следующей статье базы знаний Майкрософт:
2567616 Сборки SQL Server 2008 R2, выпущенные после выпуска SQL Server 2008 R2 с пакетом обновления 1 (SP1)
SQL Server 2008 с пакетом обновления 2
Исправление для этой проблемы впервые выпущено в накопительном обновлении 7 для SQL Server 2008 с пакетом обновления 2. Чтобы получить дополнительные сведения об этом накопительном пакете обновления, щелкните следующий номер статьи базы знаний Майкрософт:
2617148 Накопительный пакет обновления 7 для SQL Server 2008 с пакетом обновления 2 (SP2)Примечание. Так как сборки являются кумулятивными, каждый новый выпуск исправлений содержит все исправления и все исправления безопасности, которые были включены в предыдущий выпуск исправлений для SQL Server 2008. Корпорация Microsoft рекомендует установить последнюю версию исправления, которая включает это исправление. Дополнительные сведения см. в следующей статье базы знаний Майкрософт:
2402659 Сборки SQL Server 2008, выпущенные после выпуска пакета обновления 2 (SP2) для SQL Server 2008 Исправления Microsoft SQL Server 2008 создаются для конкретных пакетов обновления для SQL Server. Необходимо применить исправление для SQL Server 2008 с пакетом обновления 2 (SP2) к установке SQL Server 2008 с пакетом обновления 2. По умолчанию любое исправление, предоставленное в пакете обновления SQL Server, входит в следующий пакет обновления для SQL Server.
Накопительный пакет обновления 16 для SQL Server 2008 с пакетом обновления 1 (SP1)
Исправление для этой проблемы впервые выпущено в накопительном пакете обновления 16 для SQL Server 2008 с пакетом обновления 1 (SP1). Для получения дополнительных сведений о том, как получить этот накопительный пакет обновления для SQL Server 2008 с пакетом обновления 1 (SP1), щелкните следующий номер статьи базы знаний Майкрософт:
2582282 Накопительный пакет обновления 16 для SQL Server 2008 с пакетом обновления 1 (SP1)Примечание. Поскольку сборки являются кумулятивными, каждый новый выпуск обновлений содержит все исправления и все обновления для системы безопасности, которые были включены в предыдущий выпуск обновления для SQL Server 2008 SP1. Рекомендуется установить самую последнюю версию обновления, которая включает это исправление. Дополнительные сведения см. в следующей статье базы знаний Майкрософт:
970365 Сборки SQL Server 2008, выпущенные после выпуска пакета обновления 1 (SP1) для SQL Server 2008
Обходное решение
Для решения этой проблемы используйте разные имена для каждого элемента контейнера for .
Статус
Корпорация Майкрософт подтверждает наличие этой проблемы в своих продуктах, которые перечислены в разделе "Применяется к".