2013-03-30 2 views
0

У меня есть запрос SQL, результат 1 или 0 (на основе ввода). Я хочу представить одну новую задачу DataFLow в существующем пакете, в котором задача DataFlow должна выполняться, если результат запроса 1 указывает на то, что Job не сработал. Если результат запроса 0, он должен перейти к следующей задаче DataFlow? Не могли бы вы помочь мне в этом?Необходимо изменить существующий пакет SSIS?

ответ

0

Сделайте это по-другому. Используйте SQL Comand для сбора 1/0 и ввода в переменную.

Затем используйте переменную, чтобы принять решение о том, какой поток данных выполнить.

+0

Не могли бы вы объяснить, как использовать переменную с примером? –

+0

Обратитесь к моему примеру. Следуйте инструкциям, приведенным в этом примере, чтобы увидеть, куда он вас доставит - лампочка включится! ;-) –

1
  1. Объявить с переменной сказать, iResult, как INT
  2. На поверхности потока управления, место Выполнить задачу SQL.
  3. Задайте свой SQLStatement; скажем - выберите 1 как MyResult.
  4. Set Result Set to Single Row.
  5. Перейдите в раздел «Установка результата». Задайте имя результата для MyResult. В раскрывающемся списке выберите User :: iResult как имя переменной.
  6. Теперь поместите ваши два ДПФ на поверхность потока управления.
  7. Соедините оба их с задачей Execute SQL (две зеленые линии), над которыми вы работали в вышеуказанных шагах.
  8. Дважды щелкните по одному из ограничений приоритета. Набор оценки Работа для выражения и ограничения, значение для успеха, и выражение для @iResult == 0.
  9. Повторите для другой, и установить выражение для @iResult == 1.

В идеале, вы должны используйте логическую переменную. Это будет представлять собой немного сложную задачу. Я оставлю это как крошечный вызов для вас и следующего читателя, который приземляется здесь. :-)

+0

Спасибо за ваш отзыв !!! Не могли бы вы уточнить пункт 6. На самом деле мне нужно разместить только один ДПФ. Но вы упомянули два ДПФ. im бит путают !!! –

+0

Если вы не возражаете, если у вас есть документация для этого типа операций (для создания выражений), чтобы я мог ссылаться на них в будущем. На самом деле я очень новичок в этом SSIS. Im на этапе обучения. –

+0

Ваш главный вопрос здесь: Как реализовать условное разделение в потоке управления? SSIS обеспечивает условную задачу разделения для потока данных, но для потока управления нет такого компонента. Мой пример выше показывает, как разработать условное разделение на поверхности управления. Как только вы определили, было ли значение запроса 0 или 1, вы можете подключить их к любой задаче, которую хотите. В моем примере я выбрал DFT для обоих сценариев. Вы можете удалить один из них и поместить - скажем - задачу сценария, и внутри задачи сценария вы можете иметь окно сообщения, отображающее сообщение об ошибке задания. –