2014-09-07 2 views
3

У меня есть ряд задач, которые очень похожи:SSIS сценария Компонент - только изменить переменные

выбрать, Ь из С
Lookup в другой таблице и изменения значения в колонке б. Сохраните новое значение обратно c и если оно не соответствует, отправьте результат в таблицу ошибок.

Та часть довольно прямо вперед, и показано здесь:

Source ==> Lookup =match=> SQL Update command 
      =No match=> SQL Save Error command 

(Надеюсь, вы понимаете, что я имею в виду - но это работает!)

теперь я должен повторить это несколько раз, где меняет исходный код sql. Так что я хочу сделать, это вставить компонент сценария перед Источником и установить мой User :: Sql переменный, как:

Variables.Sql = "SELECT d, e FROM f" 

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

Моя проблема: когда я вставляю команду Script, она спрашивает меня, является ли это сценарием Source, Destination или Transscript. И только устанавливая переменную, она не создает никаких строк для вывода и не может подключиться к моему источнику.

Кто-нибудь знает, как это сделать?

(Я упростил это. Я действительно хочу обновить несколько переменных и использовать их в моем обновлении Source, Lookup и Error, поэтому не проще просто изменить SQL-скрипт в исходном источнике! будучи в состоянии сделать выше, я смогу добиться того, чего хочу :-))

ответ

4

Перед выполнением потока данных вы должны установить переменную, содержащую запрос SQL, в поток управления.

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

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

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