Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Comment utiliser use if..else dans Data Flow en fonction des valeurs de variable utilisateur dans SSIS

Vous ne pouvez pas désactiver ou activer les transformations dans la Data Flow Task . Cependant, vous pouvez activer ou désactiver les tâches de flux de données sur le Control Flow onglet.

Voici une manière possible de procéder dans l'onglet "Flux de contrôle" :

Si cela est possible, déplacez les transformations source --> destination vers des tâches de flux de données individuelles. Quelque chose comme ci-dessous.

Supposons que vous avez créé des variables pour chaque flux pour activer ou désactiver la tâche de flux de données en fonction d'une condition. Pour cet exemple, j'ai codé en dur certaines valeurs.

Pour activer ou désactiver dynamiquement les tâches de flux de données en fonction de la variable. Cliquez sur une tâche de flux de données et appuyez sur F4 pour afficher les Properties . Dans les propriétés, cliquez sur les ellipses bouton à côté de Expressions propriété. Vous verrez l'éditeur d'expression de propriété.

Sélectionnez la Property Désactiver et utiliser les ellipses bouton pour entrer l'expression [email protected][User::Enable_BESTELLDRUCK] Remarquez le signe d'exclamation car la variable est déclarée sur Activer mais seulement Disable propriété est disponible pour vous devez faire le contraire.

Répétez le processus pour les autres tâches de flux de données avec les variables appropriées. Exécutez le package et vous remarquerez que la deuxième tâche de flux de données ne s'est pas exécutée car la variable Enable_AKT_FEHLER a été défini sur la valeur False .

J'espère que ça aide.

Référence :

Pour charger plusieurs tables ayant le même schéma dans le conteneur ForEach Loop, consultez la réponse SO ci-dessous. Il transfère les données de MS Access vers SQL Server. J'espère que cela devrait vous donner une idée.

Comment puis-je obtenir par programmation la liste des tables MS Access dans un package SSIS ?