Data Flow Task

Utiliser des tables temporaires dans un package SSIS

Mar 14, 2014

Amin Khelifi

J’utilise souvent dans mes scripts T-Sql des tables temporaires pour stocker les données et les calculs intermédiaires. Récemment j’avais besoin d’utiliser des tables temporaires dans un package SSIS, et j’ai découvert que SSIS ne reconnaissait pas ces tables. Dans cet article je vais vous présenter une solution pour pouvoir utiliser les tables temporaires dans vos packages SSIS.

  • Scénario 1 : Passer des tables temporaires entre des tâches Sql

Ce scénario est un cas récurrent pour les développeurs SSIS: stocker les résultats d’une requête exécutée dans une tâche Sql pour ensuite l’utiliser dans une autre tâche Sql.

c1

En exécutant ce package SSIS j’ai une erreur :

c2

L’erreur est due au fait que la deuxième tâche Sql ne reconnait pas la table temporaire créée dans la première tâche Sql. En effet la propriété « RetainSameconnection » du gestionnaire de connexion OLE DB est à « false » par défaut.

c3

Par conséquent le gestionnaire de connexion crée une nouvelle connexion pour chaque tâche Sql et la première tâche Sql n’a pas la même session que la deuxième tâche Sql.

Donc il suffit de passer la valeur de la propriété « RetainSameconnection » du gestionnaire de connexion à « true » pour que les deux tâches utilisent la même connexion et la même session et donc la deuxième tâche Sql arrive enfin à reconnaître la table temporaire.

c4

  • Scénario 2 : Utiliser une table temporaire comme source de données

Maintenant je veux utiliser la table temporaire déjà créée, comme une source de données pour créer un fichier texte.

c5

Mais en essayant de valider le composant, encore une fois j’ai une erreur m’indiquant que ma table temporaire n’est pas reconnue.

c6

Pour résoudre ce problème il faut suivre les étapes suivantes:

1. D’abord il faut valider les métadonnées de notre source de données OLE DB. Commençons par créer une table à l’image de notre table temporaire.

Create Table Test
(ID INT,Quantity INT)

2. Ensuite on sélectionne la table Test en tant que source de données dans le composant Ole DB Source et on valide les métadonnées

c7

 

3. Dans les propriétés du composant Ole DB Source il faut modifier la valeur de la propriété «ValidateExternalMetaData» à « true » ,changer le mode d’accès à Sql Command et remettre la requête dans SqlCommand.

c8

 

4. Enfin ne pas oublier de faire le ménage en supprimant la table créée pour valider les métadonnées:

Drop Table Test

Cette fois l’exécution de mon package se déroule sans problème et mon fichier est créé à partir de la table temporaire.

c9 c10

L’utilisation des tables temporaires peut s’avérer indispensable dans un projet SSIS contenant plusieurs étapes de calcul.Elles permettent de décomposer une requête complexe en plusieurs tâches Sql. Toutefois il faut savoir comment adapter les paramètres du projet SSIS afin de pouvoir les utiliser.

0 commentaires

Soumettre un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Découvrez nos autres articles

Aller au contenu principal