2015-11-10 2 views
0

J'ai un composant de script source dans SQL2012. Je crois que si vous voulez définir une variable de lecture/écriture dans le composant Script, elle doit être définie dans la méthode Postexecute. Et je l'ai fait comme ça; J'ai testé la variable après l'exécution du composant de script et constaté qu'il n'avait pas été défini. J'ai défini un point d'arrêt dans la méthode PostExecute et confirmé qu'il n'est jamais appelé.PostExecute ne se déclenche pas dans le composant de script SSIS

J'ai même écrit un nouveau paquet très simple et l'ai testé à nouveau avec les mêmes résultats. Quelqu'un peut-il me dire pourquoi le PostExecute ne tirera pas.

Je n'ai connaissance d'aucune restriction sur la définition d'une variable ici (qu'il y ait ou non des enregistrements à traiter).

Répondre

0

La variable peut être définie dans le composant de script, mais vous ne pouvez l'utiliser qu'une fois la tâche de flux de données terminée (dans la tâche suivante).

+0

Comment cela empêche-t-il le déclenchement de l'événement? – user1413844

0

Après quelques tests, il apparaît que lorsque vous utilisez un composant de script en tant que "Source", l'événement PostExecture ne se déclenche jamais. Fonctionne bien une "Transformation". N'a pas testé le type "Destination". Rien dans la documentation de Microsoft ne mentionne ce fait, c'est donc trompeur. J'ai fini par utiliser le contrôle rowcount pour compter les enregistrements.

Je ne sais pas ce que j'aurais fait si j'avais eu besoin de plus sur l'événement PostExecture.