Skip to content

Uso del ForEach ADO Enumerator para iterar sobre los registros de una consulta en Integration Services de SQL Server

29/01/2013
SQLServer2012

En este post les presentaré una guía paso a paso para la implementación de un contenedor del tipo ForEach loop dentro de Integration Services de SQL Server. Este tipo tipo de container nos permite recorrer una colección de objetos y repetir las tareas dentro del container por cada elemento de la colección. En nuestro ejemplo, la colección será el resultado de una consulta SQL ejecutada al comienzo del paquete de Integration Service. El caso de uso que estamos representando corresponde a un proceso de backup de todas las bases de datos del usuario para un determinado servidor SQL Server. Fácilmente podrán adaptar este caso a sus necesidades y extender lo aquí presentado.

Paso 1- Definición de una variable de tipo object

Debemos definir en nuestro paquete una variable del tipo object, que será la que almacene el resultado de la consulta ejecutado en la tarea de Execute SQL, como se ve en el siguiente gráfico:

ForEachADOEnum_P1

Paso 2- Configurar la tarea de Execute SQL

Debemos aquí prestar especial atención a la propiedad ResultSet

ForEachADOEnum_P2

y además indicar la variable de tipo object que almacenará el resultado de nuestra consulta:

ForEachADOEnum_P3

Paso 3- Configurar al containter Foreach Loop

Debemos indicar que usaremos una colección del tipo Foreach ADO Enumerator y además seleccionar la variable que almacena esta colección (la misma usada en la tarea anterior)

ForEachADOEnum_P4

También definiremos una nueva variable para almacenar los datos obtenidos de cada objeto al iterar sobre la colección. En este caso nuestra variable almacenará el nombre de una de las bases de datos contenidas en el servidor

ForEachADOEnum_P5

El paquete va tomando su forma definitiva:

ForEachADOEnum_P6

Paso 4- Configurar la tarea dentro del container

Dentro de nuestro container ubicaremos las tareas que queremos repetir por cada elemento de la colección a recorrer. En nuestro ejemplo esta tarea realiza el backup de una base de datos. Para ello configuramos la propiedad SQLStatementSource de una tarea de Execute SQL para obtener el comando requerido.

ForEachADOEnum_P7

Paso 5- Ejecutar y testear el paquete

Solo nos resta ejecutar nuestro paquete y testear que funcione correctamente.

ForEachADOEnum_P8

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: