Compartir a través de


No se respetan los puntos de control de SSIS para los elementos de contenedor de bucles For o Bucle Foreach

Este artículo le ayuda a solucionar el problema en 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

Considere el caso siguiente:

  • 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 secuencia.

  • Tanto el contenedor de bucles For como los elementos de contenedor de secuencia tienen una de las siguientes opciones:

    • Una tarea Ejecutar SQL (OR)
    • Dos o más tareas Ejecutar SQL que se ejecutan en paralelo.
  • Habilite la configuración punto de comprobación para el paquete SSIS.

  • Ejecute el paquete SSIS.

  • El contenedor de bucles For completa y la ejecución del paquete llega al contenedor de secuencia.

  • Realice una de las siguientes acciones:

    • En el caso de los paquetes que tienen una única tarea Ejecutar SQL, se detiene la ejecución del paquete mientras la tarea sigue en ejecución.
    • En el caso de los paquetes que ejecutan varias tareas ejecutar SQL, detenga la ejecución del paquete o experimente un error en una de esas tareas, mientras que otras tareas Ejecutar SQL (s) siguen ejecutándose.
  • El paquete SSIS se ejecuta de nuevo.

En este escenario, el paquete comienza desde For Loop Contenedor en lugar del Sequence contenedor.

Nota:

Este problema no está asociado a la tarea Ejecutar SQL. Esto también puede ocurrir con otras tareas.

Causa

Este comportamiento se debe al diseño. 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 vuelven a ejecutar.

Solución alternativa

Para solucionar el problema, encapsula el For Loop contenedor o Foreach Loop dentro de un Sequence contenedor.