Partager via


Utilisation de variables dans des packages

Les variables sont un ajout souple et utile aux packages Integration Services. Elles peuvent permettre une communication entre les objets du package et entre les packages parents et enfants. Les variables peuvent également être utilisées dans les expressions et les scripts.

Variables définies par l'utilisateur et variables système

Integration Services fournit les variables système et prend en charge les variables définies par l'utilisateur. Quand vous créez un nouveau package, quand vous ajoutez un conteneur ou une tâche à un package ou quand vous créez un gestionnaire d'événements, Integration Services inclut un ensemble de variables système pour le conteneur. Les variables système contiennent des informations utiles sur un package, conteneur, tâche ou gestionnaire d'événements. Par exemple, à l'exécution, la variable système MachineName contient le nom de l'ordinateur sur lequel le package est exécuté et StartTime contient l'heure à laquelle le package a démarré son exécution. Les variables système sont en lecture seule. Pour plus d'informations, consultez Variables système.

Vous pouvez créer des variables définies par l'utilisateur et les utiliser ensuite dans des packages. Les variables définies par l'utilisateur peuvent être utilisées de nombreuses manières dans SSIS : dans des scripts, les expressions utilisées par des contraintes de précédence, le conteneur de boucles For, la transformation de colonne dérivée, la transformation de fractionnement conditionnel et les expressions de propriété qui mettent à jour des valeurs de propriété.

Par exemple, vous pouvez utiliser une variable définie par l'utilisateur dans la condition d'évaluation pour le conteneur de boucles For. Vous pouvez également mapper la valeur de la collection de l'énumérateur dans un conteneur de boucles Foreach à une variable, et si une tâche d'exécution SQL utilise une instruction SQL paramétrée, vous pouvez mapper les paramètres de l'instruction à des variables. Pour plus d'informations, consultez Variables Integration Services.

Scénarios d'utilisation de variables

Les variables sont utilisées de nombreuses manières différentes dans les packages Integration Services. Vous constaterez sans doute que le développement de package est limité tant que vous n'avez pas ajouté une variable définie par l'utilisateur à votre package pour mettre en œuvre la flexibilité et la gestion nécessaires à votre solution. En fonction du scénario, les variables système sont aussi couramment utilisées.

Expressions de la propriété   Utilisent des variables pour fournir des valeurs dans les expressions de la propriété qui définissent les propriétés des objets de package et des packages. Par exemple, l'expression SELECT * FROM @varTableName inclut la variable varTableName qui met à jour l'instruction SQL exécutée par une tâche d'exécution SQL. L'expression DATEPART("d", GETDATE()) == 1? @[User::varPackageFirst]:@[User::varPackageOther] met à jour le package exécuté par la tâche d'exécution de package en exécutant le package spécifié dans la variable varPackageFirst le premier jour du mois et en exécutant le package spécifié dans la variable varPackageOther les autres jours. Pour plus d'informations, consultez Utilisation des expressions de propriété dans des packages.

Expressions du flux de données   Utilisent des variables pour fournir des valeurs dans les expressions que les transformations de fractionnement conditionnel et de colonne dérivée utilisent pour renseigner les colonnes ou pour diriger les lignes de données vers différentes sorties de transformation. Par exemple, l'expression @varSalutation + LastName concatène la valeur dans la variable VarSalutation et la colonne LastName. L'expression, Income < @HighIncome dirige vers une sortie les lignes de données dans lesquelles la valeur de la colonne Income est inférieure à la valeur dans la variable HighIncome. Pour plus d'informations, consultez Transformation de colonne dérivée, Transformation de fractionnement conditionnel et Utilisation d'expressions dans des packages.

Expressions de contraintes de précédence Fournissent des valeurs à utiliser dans des contraintes de précédence pour déterminer si un exécutable contraint s'exécute. Les expressions peuvent être utilisées avec un résultat d'exécution (succès, échec, achèvement de l'opération) ou à la place d'un résultat d'exécution. Par exemple, si l'expression @varMax > @varMin s'évalue à true, l'exécutable s'exécute. Pour plus d'informations, consultez Ajout d'expressions aux contraintes de précédence.

Paramètres et codes de retour Fournissent des valeurs aux paramètres d'entrées ou stockent les valeurs des paramètres de sortie et des codes de retour. Cette opération s'effectue en mappant les variables aux paramètres et aux valeurs de retour. Par exemple, si vous affectez à la variable varProductId la valeur 23 et que vous exécutez l'instruction SQL SELECT * from Production.Product WHERE ProductID = ?, la requête extrait le produit avec la valeur ProductID 23. Pour plus d'informations, consultez Tache d'exécution de requêtes SQL et Utilisation de paramètres et de codes de retour dans la tâche d'exécution SQL.

Expressions de boucle For   Fournissent les valeurs à utiliser dans les expressions d'initialisation, d'évaluation et d'assignation de la boucle For. Par exemple, si la variable varCount est 2, la variable varMaxCount 10, l'expression d'initialisation @varCount, l'expression d'évaluation @varCount < @varMaxCount, et l'expression d'assignation @varCount =@varCount +1, la boucle se répète 8 fois. Pour plus d'informations, consultez Conteneur de boucles For.

Configurations de variable de package parent   Passent des valeurs des packages parents aux packages enfants. Les packages enfants peuvent accéder à des variables dans le package parent à l'aide de configurations de variable de package parent. Par exemple, si le package enfant doit utiliser la même date que le package parent, le package enfant peut définir une configuration de variable de package parent qui spécifie une variable définie par la fonction GETDATE dans le package parent. Pour plus d'informations, consultez Tâche d'exécution de package et Configurations de package.

Tâche de script et composant de script   Fournissent une liste de variables en lecture seule et en lecture/écriture à la tâche de script ou au composant de script, mettent à jour les variables en lecture/écriture dans le script, puis utilisent les valeurs mises à jour à l'intérieur ou à l'extérieur du script. Par exemple, dans le code numberOfCars = CType(Dts.Variables("NumberOfCars").Value, Integer), la variable de script numberOfCars est mise à jour par la valeur dans la variable NumberOfCars. Pour plus d'informations, consultez Utilisation de variables dans la tâche de script.

Configurations et variables

Pour mettre à jour dynamiquement des variables, vous pouvez créer des configurations pour les variables, déployer les configurations dans le package, puis mettre à jour les valeurs de variable dans un fichier de configuration lorsque vous déployez les packages. À l'exécution, le package utilise les valeurs de variable mises à jour. Pour plus d'informations, consultez Création de configurations de package.

Pour ajouter, modifier et supprimer des variables définies par l'utilisateur

Icône Integration Services (petite) Rester à jour avec Integration Services

Pour obtenir les derniers téléchargements, articles, exemples et vidéos de Microsoft, ainsi que des solutions sélectionnées par la communauté, visitez la page Integration Services sur MSDN ou TechNet :

Pour recevoir une notification automatique de ces mises à jour, abonnez-vous aux flux RSS disponibles sur la page.