2015-09-30 5 views
1

Я пытаюсь выполнить задачу SQL после завершения цикла конвейера (например, выполняет итерации), но он просто не выполнит. Я не могу, чтобы жизнь меня определяла, почему это не будет выполнено, поскольку ошибок нет. Есть идеи?SSIS - Как выполнить следующую задачу после цикла Loop

SSIS Workflow Params

Петля выполняет нужное число раз, но, как вы можете видеть на картинке, Вставка рефералов Действия SQL Task не выполняет.

Идея состоит в том, что если количество исходных записей падает под определенным порогом, например, 2000000, то просто загрузите в 1 кадр, иначе цикл 1000000 за раз и нагрузка. Это должно обойти некоторые проблемы с сетью и подключением, которые у меня были.

Последняя задача (Insert Referral Actions) выполняет хранимую процедуру, которая объединяет промежуточные данные с большим количеством связанных таблиц и заполняет таблицу фактов. Именно эту задачу SQL нужно разделить между двумя ветвями.

Спасибо за любую помощь

+0

Вы пытались добавить задачу сценария внутри цикла For Loop для отображения значения цикла? Кроме того, это может помочь, если вы можете предоставить скриншот параметров, используемых в Loop – MiguelH

+0

. Havent попробовал задачу Script. Я знаю, что цикл работает как im, получая более 5 миллионов строк в моей промежуточной таблице, так что он выполняет свою работу. – Matt

+0

. Я не сомневаюсь, что это работает, но может быть полезно включить компонент сценария, чтобы увидеть значение ReferralActionLoopiteration по сравнению с ReferralActionLoopMaxCount. – MiguelH

ответ

1

логичного объяснения «действий Insert Направления» говорит, что он должен выполнить, если вход выполнен успешно. В вашем случае один из двух входных файлов успешно выполнен. Таким образом, технически задача «Выполнение SQL» не имеет разрешения на выполнение, потому что оба входа не увенчались успехом. Вот как вы можете это сделать: нажмите на ограничение приоритета и выберите logical OR вместо Logical AND.

enter image description here

Смежные вопросы