2015-05-21 4 views
0

Я хочу создать интерфейс между двумя базами данных на SQL Server 2008+, чтобы скопировать несколько похожих названных таблиц в один.Перенос нескольких аналогичных таблиц в SSIS

У меня п таблицы, которые все имеют один и то же именование, например:

SalesInvoicePlanning2014ver1 
SalesInvoicePlanning2015ver1 
SalesInvoicePlanning2015ver2 

т.д.

Число может варьироваться и не имеет множество начала (или конец), но всегда "int" -Datatype.

У меня также есть таблица «tabledir», которая содержит все имена таблиц в виде списка. (одно поле). В этом списке содержится 30-40 записей с нежелательными вводами (для меня). В приведенном выше примере мне понадобится 3 из 30 таблиц.

План состоит в том, чтобы использовать контейнер петли для

select Top 1([name]) from [tabledir] where name like 'SalesinvoicePlanning%' 

, а затем использовать результат в качестве переменной в следующей задаче передачи SSIS данных:

Select * from [variable] 

Однако, я застрял с SQL, чтобы дать мне желаемое имя таблицы на каждой итерации.

Производительность на самом деле не проблема. Любой совет? Я ошибаюсь, пытаясь использовать контур-контейнер?

+0

Нет, я не вижу каких-либо серьезных проблемы с этим. Я бы рекомендовал установить ваш запрос как переменную и использовать переменную SQL из вашего источника. – Zane

ответ

0

Вы можете следовать следующим шаги -

Шага 1 - Вы можете сначала создать задачу SQL, чтобы получить все имена таблиц в одну переменных позволяет сказать, TableNames типа Object() набор записей с помощью запроса.

например. выберите ([имя]) как TableName из [tabledir], где имя типа «SalesinvoicePlanning%»

Шаг 2 - Добавить контейнер foreach loop для итерации по этой переменной TableNames, чтобы взять одно имя таблицы в новую переменную current_table и добавить поток данных в контейнер для импорта данных в таблицу назначения. Ваш источник запроса будет выражение, как -

Выберите COLUMN_NAMES из current_table

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