2015-04-16 4 views
0

Я только начал изучать использование развертывания проекта SSIS 2012. Одна вещь, которую я заметил, заключается в том, что после развертывания проекта все свойства, связанные с диспетчером соединений на уровне проекта, также развернуты и, следовательно, должны быть настроены (привязаны к переменным среды SSIS).SSIS Project Connection Connection Configuration Конфигурации свойств

Просто интересно было ли среда SSIS достаточно умна, чтобы вывести свойство ConnectionString из свойств InitialCatalog и ServerName. Таким образом, мне нужны только переменные среды InitialCatalog и ServerName, а не третья переменная, содержащая фактическую строку соединения, которая приведет к дублированию конфигурации.

См. Скриншот ниже, показывающий пример этого.

enter image description here

+0

Или вы можете использовать 1 переменную окружения, которая является целым «ConnectionString» и забыть возиться с частями. – billinkc

ответ

0

Если я получил свой вопрос прямо, вы хотите установить начальный каталог и имя сервера свойство paramatically.

Вот шаги, чтобы сделать это: [Применимо для SSIS 2005 и выше]

Шаг 1: Создание двух переменных в SSIS пакета (области видимости пакета) и назовите их DbName, ServerName

enter image description here

Шаг-2: В диспетчере соединений создайте соединение OLEDB и тестовое соединение.

Шаг-3: Теперь щелкните правой кнопкой мыши на диспетчере соединений и выберите свойства.

Step-4: В свойствах щелкните выражение. Вы увидите окно ниже. В этом окне выберите Initial Catalog

enter image description here

Шаг 5: Теперь нажмите на выражения и Drag & Drop (то есть ваше имя каталога) переменную DbName из верхнего левого окна в текстовом поле выражения и оценить его.

enter image description here

Шаг 6: Сделайте то же самое для имени сервера. и вы закончили

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

Другой способ, Специально для SSIS 2012 и выше

Теперь, как вы уже упоминали SSIS2012. Пусть; s использовать его особенность Project parameter

  • Создание переменных уровня проекта, Вы можете либо создать две имена переменных [DbName, ServerName] или полную строку подключения.

enter image description here

  • Создать соединение OLEDB в диспетчере соединений и правой кнопкой мыши на соединении. Затем выберите «Parameterize»

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

enter image description here

Прочитайте это link для более подробной информации

+0

Спасибо за очень подробный ответ! Если я скажу только параметризовать свойства ServerName и InitialCatalog диспетчера соединений на уровне проекта, будет ли свойство ConnectionString выведено из этих свойств? Кажется странным, что при развертывании на сервере свойство ConnectionString автоматически развертывается также в разделе «Configuration Manager» на моем снимке экрана, предполагающем, что он тоже должен быть привязан к «переменной среды SSIS». – jeremyh

+0

Проверьте эту ссылку https://msdn.microsoft.com/en-us/library/hh213214.aspx > В общем случае, если вы развертываете пакет с использованием модели развертывания пакета, вы должны использовать конфигурации вместо параметров. При развертывании пакета, содержащего параметры с использованием модели развертывания пакета и последующего выполнения пакета, параметры не вызывается во время выполнения. Если пакет содержит параметры пакета и выражения в пакете, используйте параметры, результирующие значения применяются во время выполнения. Если пакет содержит параметры проекта, выполнение пакета может завершиться неудачно. – Zerotoinfinity

+0

Я использую модель развертывания проекта. Я думаю, что ответ на мой вопрос заключается в том, что свойства ServerName и InitialCatalog, привязанные к «переменным окружения SSIS», будут перезаписывать значение дизайна в свойстве ConnectionString (хотя оно по-прежнему автоматически развертывается на сервере, а не фактически настроено/используется) , – jeremyh

0

Я проверил несколько комбинаций ConnectionString, Init ialCatalog и ServerName. Похоже, что имя сервера (DataSource) и начальный каталог должны находиться в строке соединения, а начальный каталог должен иметь значение. Если я оставил имя сервера пустым, он работал до тех пор, пока DataSource находился в строке подключения.

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