SSIS - обработка пакетов с использованием top - PullRequest
0 голосов
/ 21 ноября 2018

Я выполняю задачу нечеткого отображения для миллионов строк данных (из таблицы A).Я беру топ 10000 за раз, обрабатываю их и сохраняю сопоставленные строки в другой таблице.(Таблица B)

Затем, когда я выбираю следующую партию, я удостоверяюсь, что идентификаторы из таблицы A, которые сейчас находятся в Таблице B, не выбраны для обработки.

Это работает нормально.

Как теперь получить цикл для выполнения процесса без необходимости останавливать запуск после каждой итерации?

Спасибо

1 Ответ

0 голосов
/ 23 ноября 2018
  1. Создайте эти переменные (SourceMaxID и DestMaxID), как показано ниже:

Переменные

В вашем потоке управления;Добавьте задачу «Выполнение SQL»: в операторе SQL используйте приведенный ниже скрипт, чтобы получить максимальный идентификатор из таблицы A и назначить значение переменной SourceMaxID.

SELECT ISNULL (MAX (IDColumn), 0) FROM [Таблица A]

Настройте результирующий набор на одну строку и добавьте переменную.

Добавьте контейнер For Loop в ваш поток управления.

ПеретащитеЗадача (и) потока данных, которую вы создали для нечеткого отображения в контейнере For Loop, как показано ниже.

Добавьте задачу Execute SQL TASK в контейнер For Loop, как показано ниже.

Аналогично процессу 1, получить MaxID из таблицы B и назначить переменной DestMaxID

SELECT ISNULL (MAX (IDColumn), 0) FROM [Таблица B]

Контроль потока

Настройте для контейнера петли, как показано ниже:

Для контейнера петли

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...