2015-04-25 2 views
1

Привет Я хочу создать 1 SSIS-пакет, который загружает файл excel в клиентскую БД.Динамическое подключение SSIS к источнику и месту назначения.

У меня есть 100 клиентов db, и у меня также есть evrey new week 100 excel files (Все файлы DB и файлы имеют одинаковую структуру), имя db - имя CustomerName, а имя файла excel - CustomerName_date.

Я хочу создать работу, которая будет запускаться раз в неделю с помощью пакета ssis, который загрузит все файлы excel в папке в db клиента и перенесет файл в архивную папку.

что лучше всего для этого с динамическим подключением к источнику и месту назначения.

+0

Почему у вас есть 100 разных клиентов? Любопытно –

+0

У каждого клиента есть свой собственный db на моем сервере с отличным Proc и просмотром и ключами. –

ответ

0

Эта задача может быть выполнена с использованием переменных и выражений. Наиболее сложной частью будет создание рабочей строки соединения для соединения OLE DB.

1) Для обработки каждого файла в папке используйте цикл Foreach.

  • В окне редактирования контура в коллекции Вкладка выберите "Foreach Enumerator Файл"
  • Выберите папку, отфильтровать файлы Excel (при необходимости) с помощью wildcart и выберите Полное имя
  • Создайте переменную для хранения пути к файлу и на вкладке Переменные сопоставления выберите эту переменную. (В каждом цикле новый путь к файлу будет сохранен в этой переменной).

2) Создать новую соединение Excel файл на основе одного из файлов Excel, щелкните правой кнопкой мыши и в выражениях, создать выражение для строки подключения. В редакторе выражений установите его для использования переменной файла yout.

3) Затем нам нужно будет создать строку подключения для OLE DB соединение.

  • Создайте новую переменную, чтобы ее разрезать.
  • Создать Соединение OLE DB и подключить его к любой из ваших баз данных.
  • Затем щелкните правой кнопкой мыши ваше соединение и создайте резервную строку связи в другом месте, чтобы вы могли использовать его в будущем.

4) В цикле foreach создайте задачу Script.

  • В редакторе задач Сценариев выберите ReadOnlyVariables (ваше имя файла) и ReadWriteVariables (ваш подготовленный строки соединения)
  • Нажмите Редактировать скрипт и в новом окне VisualStudio, создать свой сценарий.
  • Переменные могут быть считаны и записаны как это:

    строка MyValue = (строка) Dts.Variables [ "User ::"].Стоимость;

  • Вы можете проанализировать имя excel из переменной fileName и создать новую строку соединения для OLE DB в соответствии с ранее сохраненным.

5) Отредактируйте соединение OLE DB Выражения и сопоставьте строку Connection с переменной.

6) В цикле foreach создайте Задачу потока данных и дважды щелкните по ней. Используйте Excel source и используйте его для подключения Excel. Затем создайте пункт назначения OLE DB и используйте его соединение OLE DB.


Используйте этот ответ как предложение, возможно, ему понадобится сома, пока она не будет работать. Но, основываясь на моем опыте, этот подход должен работать.

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