Диспетчер соединений служб SSIS - PullRequest
0 голосов
/ 20 сентября 2018

Я создал два проекта с одинаковыми именами менеджера соединений.Хотя имена одинаковы, они указывают на две разные среды.Я предполагал, что, если я добавлю пакет из одного проекта в другой, я не столкнусь с проблемами, связанными с диспетчером соединений.Но я все еще получаю ошибку, что менеджер соединений "" не найден.Означает ли это, что даже если у меня одно и то же имя диспетчера подключений, мне все равно нужно открывать каждый DFT и изменять диспетчеры подключений вручную?

С уважением, K

1 Ответ

0 голосов
/ 21 сентября 2018

Я думаю, что понимаю, о чем здесь спрашивают.

Проект 1

  • Подключение на уровне проекта мы будем называть "TestConnection"
  • Пакет служб SSIS, который мы будемвызов «TestPackage1» использует соединение уровня проекта «TestConnection»

Project 2

  • Опять же, соединение уровня проекта мы будем называть «TestConnection»
  • Пакет служб SSIS, который мы назовем «TestPackage2», использует подключение на уровне проекта «TestConnection»

Вы перемещаете «TestPackage1» из Проекта 1 в Проект 2, и теперь весь поток данных, выполнение задачи sql, жалуются на отсутствиедиспетчер соединений.

Вы спросили:

Означает ли это, что даже если у меня одно и то же имя диспетчера соединений, мне все равно нужно открывать каждый DFT и изменять диспетчеры соединений вручную?

Краткий ответ .... Да

Поймите, что за кулисами с пакетами служб SSIS каждый объект, поток данных, выполнение задачи sql, источники, назначения, диспетчеры соединений назначаютсяуникальный GUID.Этот уникальный GUID используется каждым объектом при обращении друг к другу в проекте / решении, в котором они были созданы.

Таким образом, даже если вы переместили пакет из одного проекта в другой, а диспетчер соединений был назван одинаково,Диспетчер соединений не будет иметь тот же GUID от проекта к проекту.

Вы можете увидеть это, когда посмотрите на код для диспетчера соединений и посмотрите на код пакета.

Изнутри VisualStudio:

  • с открытым пакетом нажмите View -> Code на панели инструментов
  • Затем щелкните правой кнопкой мыши на диспетчере соединений в Solution Explorer и выберите View Code

Это даст вам представление о XML-коде.Если прокрутить код своего пакета до одного из потоков данных, вы увидите, что connectionManageID ссылается на GUID диспетчера соединений: enter image description here

Вы можете, и у меня естьв прошлом при работе с большими пакетами идентифицировали GUID из проекта, в который вы скопировали пакет, и GUID, на который ссылается пакет, затем выполняйте поиск и замену в коде.Сохраните, закройте все и снова откройте.Я предупреждаю об этом, так как вы можете легко, полностью сломать пакет, если не все сделано правильноЭто было бы на свой страх и риск, и я бы удостоверился, что у вас есть резервные копии всего, прежде чем даже пытаться его сделать.

Если ваш пакет не такой большой, просто вручную обновите каждую из задач.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...