Подтвердить что ты не робот

SSIS, как установить строку соединения динамически из файла конфигурации

Я использую службы интеграции SQL Server (SSIS) в SQL Server Business Intelligent Development Studio.

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

Это означает, что в OLEDB Connection Manager строка подключения должна динамически меняться. Эта строка подключения должна быть взята из файла конфигурации /XML/flat.

Я читал, что могу использовать переменные и выражения для динамического изменения строки подключения. Но как я могу прочитать значение строки соединения из файла config/XML/flat и установить переменную?

Эта часть, которую я не могу сделать. Правильно ли это для этого? Можем ли мы добавить файлы web.config в проект SSIS?

4b9b3361

Ответ 1

Сначала добавьте переменную в ваш пакет SSIS (область пакета). Я использовал FileName, OleRootFilePath, OleProperties, OleProvider. Тип для каждой переменной - "строка". Затем я создаю файл конфигурации (выберите каждую переменную - значение) - заполняйте значения в файле конфигурации - например: для OleProperties - Microsoft.ACE.OLEDB.12.0; для OleProperties - Excel 8.0; HDR =, OleRootFilePath - путь к файлу Excel, имя_файла - имя_файла

В диспетчере соединений - я затем динамически устанавливаю выражение Строка- > Выражения- > Соединение, например:

"Provider=" + @[User::OleProvider] + "Data Source=" + @[User::OleRootFilePath]
+ @[User::FileName]  + ";Extended Properties=\"" + @[User::OleProperties] + "NO \""+";"

Таким образом, как только вы установите значения переменных и измените их в своем файле конфигурации - строка подключения будет динамически изменяться - это особенно помогает перейти от разработки к производственным средам.

Ответ 2

Некоторые параметры:

  • Вы можете использовать Execute Package Utility, чтобы изменить свой источник данных, прежде чем запускать пакет.

  • Вы можете запустить свой пакет с помощью DTEXEC и изменить свое соединение, передав параметр a/CONNECTION. Вероятно, сохраните его как пакет, поэтому в следующий раз вам не нужно вводить все это и просто изменять источник данных по мере необходимости.

  • Вы можете использовать файл конфигурации SSIS XML . Вот пройти.

  • Вы можете сохранить свои конфигурации в таблице базы данных.

Ответ 3

Вот некоторые сведения о механизме, который вы должны использовать, называемые конфигурациями пакетов: Общие сведения о конфигурациях пакетов служб Integration Services. В статье описаны 5 типов конфигураций:

  • Файл конфигурации XML
  • Переменная среды
  • Запись в реестре
  • Переменная родительского пакета
  • SQL Server

Здесь вы найдете руководство по настройке диспетчера подключений: Настройка пакета служб SSIS для служб SQL Server - Я понимаю, что это использование переменная среды для строки подключения (не очень хорошая идея), но основы идентичны использованию XML файла. Единственный шаг (ы), который вы должны изменить в этом пошаговом руководстве, - это тип конфигурации, а затем путь.

Ответ 4

Перейти к свойствам пакета- > Конфигурации- > Включить конфигурации пакетов- > Добавить- > файл конфигурации xml- > Определить файл dtsconfig- > click next- > В свойствах OLEDB пометить строку подключения- > значение строки подключения будет отображаться- > затем нажмите далее и завершите пакет.

Вы также можете добавить переменную среды в этот процесс

Ответ 5

Эти ответы правильные, но старые и работают для Depoloyement Package Model. Мне действительно нужно изменить имя сервера, имя базы данных диспетчера соединений, и я нашел это очень полезным:

https://www.youtube.com/watch?v=_yLAwTHH_GA

Лучше для людей, использующих SQL Server 2012-2014-2016... с помощью Deployment Project Model