visual studio services renombrar loop example container archivos ssis connection-string configuration-files

studio - SSIS cómo configurar la cadena de conexión dinámicamente desde un archivo de configuración



integration services visual studio 2015 (5)

Estoy utilizando SQL Server Integration Services (SSIS) en SQL Server Business Intelligent Development Studio.

Necesito hacer una tarea que sea la siguiente. Tengo que leer de una base de datos de origen y ponerlo en un archivo plano de destino. Pero al mismo tiempo, la base de datos de origen debe ser configurable.

Eso significa que en el Administrador de conexión OLEDB, la cadena de conexión debe cambiar dinámicamente. Esta cadena de conexión debe tomarse de un archivo de configuración / XML / plano.

Leí que puedo usar variables y expresiones para cambiar la cadena de conexión dinámicamente. Pero, ¿cómo leo el valor de la cadena de conexión de un archivo config / XML / flat y configuro la variable?

Esta parte no puedo hacer. ¿Es esta la manera correcta de lograr esto? ¿Podemos agregar archivos web.config a un proyecto SSIS?


Algunas opciones:

  1. Puede usar la utilidad de ejecución de paquetes para cambiar su fuente de datos, antes de ejecutar el paquete.

  2. Puede ejecutar su paquete utilizando DTEXEC , y cambiar su conexión pasando un parámetro / CONEXIÓN. Probablemente, guárdelo como un lote, de modo que la próxima vez no necesite escribir todo y simplemente cambiar la fuente de datos según sea necesario.

  3. Puede utilizar el archivo de configuración del paquete XML de SSIS. Aquí hay un paseo por

  4. Puede guardar sus configuraciones en una tabla de base de datos.


Aquí hay algunos antecedentes sobre el mecanismo que debe usar, llamado Configuraciones de paquetes: Descripción de las configuraciones de paquetes de Integration Services . El artículo describe 5 tipos de configuraciones:

  • Archivo de configuración XML
  • Variable ambiental
  • Entrada de registro
  • Variable del paquete padre
  • servidor SQL

Este es un tutorial para configurar una configuración en Connection Manager: Configuración del paquete SSIS de SQL Server Integration Services : me doy cuenta de que está usando una variable de entorno para la cadena de conexión (no es una gran idea), pero los conceptos básicos son idénticos a usar un XML expediente. Los únicos pasos que debe cambiar en ese tutorial son el tipo de configuración y luego una ruta.


Ir a Propiedades del paquete-> Configuraciones-> Habilitar configuraciones de paquetes-> Agregar-> archivo de configuración xml-> Especificar archivo dtsconfig-> hacer clic en siguiente-> En Propiedades de OLEDB marque la cadena de conexión-> se mostrará el valor de la cadena de conexión-> haga clic en siguiente y Por lo tanto, el paquete final está configurado.

Puede agregar la variable de entorno también en este proceso


Primero agregue una variable a su paquete SSIS (Alcance del paquete). Usé FileName, OleRootFilePath, OleProperties, OleProvider. El tipo para cada variable es "cadena". Luego creo un archivo de configuración (seleccione cada variable - valor) - llena los valores en el archivo de configuración - Ej .: para OleProperties - Microsoft.ACE.OLEDB.12.0; para OleProperties - Excel 8.0; HDR =, OleRootFilePath - Su ruta de archivo de Excel, Nombre de archivo - Nombre de archivo

En el administrador de conexión, a continuación, configuro dinámicamente las Propiedades-> Expresiones-> Expresión de la cadena de conexión, por ejemplo:

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

De esta manera, una vez que establezca los valores de las variables y los modifique en su archivo de configuración (la cadena de conexión cambiará dinámicamente), esto ayuda especialmente a pasar de los entornos de desarrollo a los de producción.


Estas respuestas son correctas, pero antiguas y funcionan para el Depoloyement Package Model . Lo que realmente necesito es cambiar el nombre del servidor, el nombre de la base de datos de un administrador de conexión y esto me resultó muy útil:

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

Mejor para las personas que usan SQL Server 2012-2014-2016 ... con el Deployment Project Model