2015-05-11 2 views
0

У меня есть таблицы из Navision, имена которых являютсяперебирает название компании SSIS 2008

dbo.[CompanyName$Cust_ Ledger Entry].[Customer No_] 

у меня есть 30 компаний. Я ищу, чтобы перевернуть компании Я придерживаюсь этого решения https://social.msdn.microsoft.com/forums/sqlserver/en-US/a13d39ab-968b-41f2-bf85-cb46db763d4e/variable-to-dynamically-change-tablename-for-data-flow-task

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

ответ

1

Хорошо, я могу видеть из вашего другого сообщения, что вы пытались что-то, а не просто спрашивали, как что-то сделать, поэтому я дам вам руку.

Вот пример того, как можно это сделать:

Example_Loop_Container

Вот пример пакета SSIS.

Для начала вам понадобится 3 переменные:

Variables

Две строковых переменными я назвал их НазваниеКомпанию и SQLStatement и переменным объект, который я назвал CompanyList.

Прежде всего нам необходимо заполнить CompanyList, мы делаем это в Execute SQL Task.

Execute_SQL_Task

Мы должны установить набор результатов «Full Результат Set», то в заявлении SQL вы должны добавить свой путь получения полных названий компаний, например «Выберите уникальное имя из DBO .компания», здесь мы сохраним эти результаты в переменном объекте:

Result_Set

Это будет теперь хранить все результаты в переменную Object.

Теперь нам нужно настроить нашу переменную SQLStatement. Переменная это просто переменная строка, однако, что нам нужно сделать, это установить его на «EvaluateAsExpression» - «Правда»:

EvaluateAsExpression

В выражении мы должны ввести следующее:

"Select * from dbo.[" + @[User::CompanyName] + "$Cust_ Ledger Entry].[Customer No_]" 

Теперь это настройка, с которой мы можем справиться с ForeachLoop.

ForEachLoop

Установите цикл просмотра, как указано выше, где мы хотим, чтобы оценить «Ряды в первой таблице» против переменной объекта «CompanyList».

Следующим шагом является карта, что к нашей конечной переменной «CompanyName», который будет использоваться в из SQL выражения:

VariableMapping

В цикл просмотра перейдите на вкладку VariableMapping и введите Выберите «CompanyName «переменная с индексом 0, это будет изменять переменную« CompanyName »каждый раз при запуске цикла, эффективно изменяя переменную Statement SQL, позволяя нам прокручивать каждую из компаний.

Заключительный шаг должен пойти в ДПФ и настройка OLEDB Источник:

OLEDB Source

Для OLEDB источника мы должны выбрать «команду SQL из переменной», здесь мы затем выбрать «SQLStatement "переменная.

После этого вы можете продолжить свой ДПФ по своему желанию.

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