Каждый из этих менеджеров соединений собирается получить новое свойство 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
и в выражении присвойте свою переменную.
Теперь, когда работает ваш пакет, все эти диспетчеры соединений настраиваются из этих выражений. Если вам нужно изменить эти значения, вы можете отредактировать пакет или применить конфигурацию времени выполнения через dtexec или использовать опцию «Конфигурации» для SSIS.
Я поддерживаю это, потому что я действительно считаю, что самый простой способ дедупликации - это вручную отредактировать файл .dtsx. Некоторая простая находка/замена на connectionManagerID = быстро укажет на объекты вашего потока данных, чтобы указать на правильные объекты соединения. –
Bill