Да, мы сделали это, и это прекрасно работает. Каждый пакет имеет две конфигурации: первая - это переменная среды, а вторая - таблица SQL Server. Переменная среды - это строка соединения для базы данных, содержащей таблицу со всеми конфигурациями, которая применяется к диспетчеру соединений. Конфигурация SQL Server использует этот диспетчер соединений для подключения к базе данных конфигурации и получения индивидуальных настроек.
Поскольку конфигурации применяются по порядку, строка подключения для диспетчера подключений устанавливается до того, как конфигурация SQL Server пытается ее использовать. В итоге:
- Создайте свой пакет
- Добавить диспетчер соединений под названием «База данных конфигурации» или что-то еще
- Добавьте конфигурацию SQL Server в пакет, используйте «База данных конфигурации» в качестве соединения и выберите параметры, которые будут сохранены в таблице
- Создание переменной среды, такой как SSIS_PKG_CONF, со строкой соединения, которая будет использоваться для менеджера соединений «База данных конфигурации»
- Добавить конфигурацию переменной среды в пакет, использовать переменную SSIS_PKG_CONF и назначить ее строке подключения для менеджера соединений "База данных конфигурации"
Теперь, когда вы запускаете пакет, конфигурация происходит следующим образом:
- Пакет обрабатывает конфигурацию переменной среды
- Присваивает значение переменной среды строке соединения диспетчера соединений «База данных конфигурации»
- Пакет обрабатывает конфигурацию SQL Server
- Он использует диспетчер соединений «База данных конфигурации» для извлечения отдельных настроек из таблицы базы данных.
Это хорошо сработало для нас, потому что мы можем изменить строку подключения так, чтобы она указывала на другую исходную базу данных для конфигурации, не меняя ничего внутри пакета или средства запуска (то есть задания или сценария агента SQL, который запускает пакеты). Есть и другие способы сделать это, и некоторые люди твердо убеждены, что файлы .dtsConfig являются лучшим вариантом, но мы обнаружили, что управлять переменными среды проще, чем файлы конфигурации
Но, в конце концов, управление конфигурациями пакетов - это предпочтение, и многое зависит от того, что проще в вашей среде с инструментами и практиками, которые у вас уже есть.