Partager via


Les points de contrôle SSIS ne sont pas respectés pour les éléments de conteneur de boucles For ou Foreach

Cet article vous aide à contourner le problème où les points de contrôle SQL Server Integration Services (SSIS) ne sont pas respectés pour les éléments de conteneur ou Foreach Loop pour For Loop lesquels ils ne sont pas respectés.

Version du produit d’origine : SQL Server
Numéro de base de connaissances d’origine : 2624458

Symptômes

Examinez le cas suivant :

  • Vous installez Microsoft SQL Server Integration Services sur un ordinateur.

  • Vous créez un package SSIS qui contient un élément de conteneur de boucles For suivi d’un conteneur de séquences.

  • Le conteneur de boucles For et les éléments de conteneur de séquence ont l’une des opérations suivantes :

    • Une tâche d’exécution SQL (OR)
    • Deux ou plusieurs tâches d’exécution SQL qui s’exécutent en parallèle.
  • Vous activez le paramètre De point de contrôle pour le package SSIS.

  • Vous exécutez le package SSIS

  • Le conteneur de boucles For se termine et l’exécution du package est fournie au conteneur de séquences.

  • Vous effectuez l’une des actions ci-dessous :

    • Pour les packages ayant une seule tâche d’exécution SQL, vous arrêtez l’exécution du package pendant l’exécution de la tâche.
    • Pour les packages exécutant plusieurs tâches d’exécution SQL, vous arrêtez l’exécution du package ou vous rencontrez un échec dans l’une de ces tâches alors que d’autres tâches Execute SQL (s) sont toujours en cours d’exécution
  • Le package SSIS s’exécute à nouveau.

Dans ce scénario, le package commence à partir du For Loop conteneur au lieu du Sequence conteneur.

Note

Ce problème n’est pas lié à l’exécution de la tâche SQL. Cela peut également se produire avec d’autres tâches.

Cause

Ce comportement est fait exprès. Les données de point de contrôle ne sont pas enregistrées pour les For Loop éléments conteneur et Foreach Loop conteneur. Si un conteneur enfant de la boucle s’exécute correctement, il n’est pas enregistré dans le fichier de point de contrôle. Par conséquent, lorsque le package est redémarré, les tâches de chacun de ces éléments de conteneur sont réexécutées.

Solution de contournement

Pour contourner le problème, encapsulez-le For Loop ou le Foreach Loop conteneur à l’intérieur d’un Sequence conteneur.