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.