none
OLE DB Source и переменная с именем таблицы RRS feed

  • Вопрос

  • Господа!

     

    Стоит простая задача: для некоего множества таблиц (список) выполнить одну и ту же операцию - копирование данных из одной базы в другую с простейшим преобразованием. Решение: создать соответствующий Data Flow Task и запихнуть ее в For Loop Container по списку таблиц, причем имя таблицы связать с переменной, откуда его будет брать OLE DB Data Source. Возникает вопрос: а как дальше настраивать Data Source и Data Flow? Откуда, например, будет браться список полей таблицы, ключи для join'ов и т.п.?

    28 июня 2007 г. 14:55

Ответы

Все ответы

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

     

    SSIS не очень предназначен для случая когда метаданные у таблиц разные - набор колонок и пр. являются статической частью пакета. SSIS все же можно использовать в этом случае (и я знаю примеры успешного использования), но это требует модификации пакета перед его исполнением из собственного кода. Обычно пользуются шаблонным пакетом, который из VB или C# кода кастомизируется для каждой таблицы и исполняется.

    28 июня 2007 г. 20:07
  • Вот красивое решение:

    http://sqljunkies.com/WebLog/knight_reign/archive/2005/03/25/9588.aspx

    Table driven foreach loops

    29 июня 2007 г. 5:28