2013-02-13 3 views
1

Я сделал несколько пакетов SSIS и интегрировать их в единый пакет путем копирования вставки контейнеров последовательности в один файл dtsxМогу ли я «псевдоним» или дедублировать диспетчеров соединений в SSIS?

В результате теперь у меня есть несколько менеджеров связи все указывает на те же 2 места (с они были скопированы с каждым контейнером последовательности и переименованы сами)

Есть ли способ объединить их вместе, чтобы я мог изменить строку соединения только в одном из дубликатов, чтобы отразить изменения на всем протяжении пакета?

(я знаю, что я вручную могу изменить все задачи, использовать ту же строку подключения, но хочу, чтобы избежать этого)

ответ

2

Свойство ConnectionString может быть больше чем одним ConnectionManager с той же переменной . Это позволит вам изменить значение один раз и применить его ко всем соединениям.

Однако вам все равно придется пройти через все ConnectionManagers и установить их свойство ConnectionString в переменную вручную. (Если, конечно, вы не захотите либо вручную редактировать файл .dtsx, либо написать приложение .NET для программного обновления пакета.) Может быть проще удалить все дополнительные диспетчера соединений и обновить задачи и компоненты вручную.

+0

Я поддерживаю это, потому что я действительно считаю, что самый простой способ дедупликации - это вручную отредактировать файл .dtsx. Некоторая простая находка/замена на connectionManagerID = быстро укажет на объекты вашего потока данных, чтобы указать на правильные объекты соединения. – Bill

0

, насколько я знаю, вы будете иметь, чтобы сделать это вручную, я боюсь , Кроме того, вы не хотите, чтобы в вашей работе было 5 менеджеров соединений, которые все подключаются к одной и той же БД.

1

Каждый из этих менеджеров соединений собирается получить новое свойство ID, когда вы их вставляете. Когда они используются в таких вещах, как Execute SQL Tasks, они отображают дружественное имя диспетчера соединений, но под листами этот GUID сохраняется. Вот почему вы можете переименовать диспетчер подключений A в диспетчер подключений B и наоборот, а задачи будут по-прежнему использовать «правильный» CM.

Подход, который позволит вам продолжить работу с существующими диспетчерами соединений, но будет иметь только две вещи для настройки: создать 2 переменные, User::ConnectionManagerAConnectionString и User::ConnectionManagerBConnectionString Назначить значение этих переменных как фактическую строку соединения из пакета, так что-то вроде Data Source=localhost\DEV2012;Initial Catalog=FOO;Provider=SQLNCLI10.1;Integrated Security=SSPI;

Вооружившись этими двумя переменными, затем на каждом из ваших менеджеров соединений щелкните их правой кнопкой мыши и в окне «Свойства» найдите выражения и щелкните эллипсы. Выберите свойство ConnectionString и в выражении присвойте свою переменную.

enter image description here

Теперь, когда работает ваш пакет, все эти диспетчеры соединений настраиваются из этих выражений. Если вам нужно изменить эти значения, вы можете отредактировать пакет или применить конфигурацию времени выполнения через dtexec или использовать опцию «Конфигурации» для SSIS.