Можно ли использовать SSIS для одновременного заполнения нескольких таблиц наследованием? - PullRequest
0 голосов
/ 30 ноября 2011

У меня есть база данных MS SQL с 3 собственными таблицами.Общий, называемый «Инструменты», и два более конкретных, «DieCastTool» и «Deburrer».

Моя задача - получить данные из старой «базы данных» MS Access.Моя проблема в том, что мне приходится много искать и фильтровать, пока у меня нет данных, которые я хотел бы импортировать в новую БД.Итак, наконец, я не хочу делать эти шаги несколько раз, но заполняю 3 таблицы одновременно.Поэтому я использую da Dataflowtarget, в которой я не выбираю определенную таблицу, а использую оператор выбора sql (с внутренними объединениями в столбцах id), чтобы получить все поля 3 таблиц.Тогда я сопоставляю столбцы и, по моему мнению, это должно работать.И это происходит до тех пор, пока я выбираю только столбцы таблицы «Инструменты» для заполнения.При добавлении столбцов дочерних таблиц, к сожалению, это не так и возвращает мне ErrorCode -1071607685 => «Статус недоступен»

Я могу вспомнить две причины, по которым мое решение не работает:

  1. SSIS просто не может обрабатывать наследование в таблицах SQL и рассматривает их как отдельные таблицы.(Может быть, SSIS даже не может обработать заполнение нескольких таблиц в одном элементе Dataflowtarget?)
  2. Я использую SSIS неправильно.

Было бы неплохо, если бы кто-то мог подтвердить или отклонитьпричина 1, потому что я ничего не нашел по этой теме.

1 Ответ

0 голосов
/ 30 ноября 2011

Да, SSIS не знает о табличных отношениях.Думайте об этом как: SSIS знает только о физических объектах, а не о вашей логической модели.

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

  1. , если между этими таблицами нет ограничений FK, Вы можете использовать один исходный компонент, одну многоадресную рассылку и 3 назначения в одном потоке данных
  2. , если есть FKограничения и их можно отключить, затем использовать задачу «Выполнение SQL», чтобы отключить (или удалить) ограничения, добавить тот же поток данных, что и в 1., и добавить еще одну задачу «Выполнение SQL», чтобы включить (или создать) ограничения
  3. , если естьОграничения FK и Вы не можете их отключить. Вы можете использовать один поток данных, чтобы прочитать все данные и передать его в последующие потоки данных, чтобы заполнить таблицу за таблицей.См. Источник данных прохода SSIS между задачами потока управления .
...