Los puntos de control de SSIS no se respetan para los elementos de contenedor de bucles For o Foreach
Este artículo le ayuda a solucionar el problema por el que no se respetan los puntos de control de SQL Server Integration Services (SSIS) ni For Loop
Foreach Loop
los elementos de contenedor.
Versión del producto original: SQL Server
Número de KB original: 2624458
Síntomas
Imagine la siguiente situación:
Instale Microsoft SQL Server Integration Services en un equipo.
Se crea un paquete SSIS que contiene un elemento de contenedor de bucles For seguido de un contenedor de secuencias.
Tanto el contenedor de bucles For como los elementos de contenedor de secuencia tienen cualquiera de los siguientes elementos:
- Una tarea Ejecutar SQL (OR)
- Dos o más tareas de ejecución de SQL que se ejecutan en paralelo.
Habilite la opción Punto de comprobación para el paquete SSIS.
Ejecute el paquete SSIS.
El contenedor de bucles For se completa y la ejecución del paquete llega al contenedor de secuencias.
Realice una de las acciones siguientes:
- En el caso de los paquetes que tienen una única tarea Ejecutar SQL, detenga la ejecución del paquete mientras la tarea sigue ejecutándose.
- En el caso de los paquetes que ejecutan varias tareas de Ejecución de SQL, detenga la ejecución del paquete o experimente un error en una de esas tareas mientras otras tareas ejecutar SQL (s) siguen ejecutándose.
El paquete SSIS se ejecuta de nuevo.
En este escenario, Package comienza desde For Loop
Container en lugar de Container Sequence
.
Nota:
Este problema no está asociado a la tarea Ejecutar SQL. Esto también puede ocurrir con otras tareas.
Causa
Este comportamiento es una característica del diseño de la aplicación. Los datos del punto de control no se guardan para los For Loop
elementos contenedor y Foreach Loop
contenedor. Si un contenedor secundario del bucle se ejecuta correctamente, no se registra en el archivo de punto de control. Por lo tanto, cuando se reinicia el paquete, las tareas de cada uno de estos elementos de contenedor se ejecutan de nuevo.
Solución alternativa
Para solucionar el problema, encapsula el For Loop
contenedor o Foreach Loop
dentro de un Sequence
contenedor.