2010-03-23 105 views
39

Estoy usando SQL Server Integration Services (SSIS) en SQL Server Business Intelligent Development Studio.SSIS cómo establecer la cadena de conexión de forma dinámica desde un archivo de configuración

Tengo que hacer una tarea que es la siguiente. Debo leer desde una base de datos fuente y ponerlo en un archivo plano de destino. Pero al mismo tiempo, la base de datos fuente 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.

He leído que puedo usar variables y expresiones para cambiar dinámicamente la cadena de conexión. Pero, ¿cómo leo el valor de la cadena de conexión desde 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?

Respuesta

10

Aquí hay algunos antecedentes sobre el mecanismo que debe usar, denominados Configuraciones de paquete: Understanding Integration Services Package Configurations. El artículo describe 5 tipos de configuraciones:

  • archivo de configuración XML
  • Variable de entorno
  • entrada del Registro de
  • Variable de paquete primario
  • SQL Server

Aquí hay un tutorial de establecer una configuración en Connection Manager: SQL Server Integration Services SSIS Package Configuration - Me doy cuenta de que somos nosotros ing 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 archivo XML. El único paso (s) que debe cambiar en ese tutorial es el tipo de configuración y luego una ruta.

26

Algunas opciones:

  1. Puede utilizar el Execute Package Utility a cambiar su fuente de datos, antes de ejecutar el paquete.

  2. Puede ejecutar su paquete usando DTEXEC, y cambie su conexión pasando un parámetro/CONEXIÓN. Probablemente lo guarde como un lote, así que la próxima vez no necesita escribir todo y simplemente cambiar el origen de datos según sea necesario.

  3. Puede usar el archivo SSIS XML package configuration. Aquí hay un walk through.

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

+3

4. puede guardar sus configuraciones en una tabla de base de datos. – HLGEM

+0

5 tipos de configuraciones se describen en [Descripción de las configuraciones del paquete de Integration Services] (http://msdn.microsoft.com/en-us/library/cc895212.aspx) –

29

Primera añadir una variable a su paquete de SSIS (Paquete Alcance) - Solía ​​Nombre de archivo, OleRootFilePath, OleProperties, OleProvider. El tipo para cada variable es "cadena". Luego creo un archivo de configuración (seleccione cada variable - valor) - llene los valores en el archivo de configuración - Por ejemplo: para OleProperties - Microsoft.ACE.OLEDB.12.0; para OleProperties - Excel 8.0; HDR =, OleRootFilePath - Su ruta del archivo de Excel, Nombre de archivo - Nombre de archivo

En el Gestor de conexiones - I a continuación, la Properties-> Expresiones del> expresión de cadena de conexión de forma dinámica por ejemplo:

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

De esta manera, una vez usted establece los valores de las variables y los cambia en su archivo de configuración; la cadena de conexión cambiará dinámicamente; esto ayuda especialmente al pasar del desarrollo a los entornos de producción.

+1

Gracias, ese es el mejor tutorial. – Sky

2

Goto Package properties-> Configurations-> Enable Package Configurations-> Add-> xml configuration file-> Spec dtsconfig file-> click next-> En OLEDB Properties marque la cadena de conexión-> connection string value se mostrará- > haga clic en Siguiente y termine el paquete, por lo tanto, está configurado.

Puede añadir variables de Medio Ambiente también en este proceso

0

Estas respuestas son correctas, pero viejo y obras para Depoloyement Package Model. Lo que realmente se necesita es cambiar el nombre del servidor, nombre de la base de un administrador de conexión y me pareció muy útil:

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

mejor para las personas que utilizan SQL Server 2012-2014-2016 ... con Deployment Project Model

Cuestiones relacionadas