Partager via


Utiliser des variables dans des packages

Les variables sont un ajout utile et flexible aux packages Integration Services . ils peuvent assurer la 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 des variables système et prend en charge les variables définies par l’utilisateur. Lorsque vous créez un package, ajoutez un conteneur ou une tâche à un package, ou 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, au moment de 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 façons dans SSIS : dans les scripts ; dans les expressions utilisées par les contraintes de précédence, le conteneur de boucles For, la transformation de colonne dérivée et la transformation de fractionnement conditionnel ; et dans les expressions de propriété qui mettent à jour les valeurs des propriétés.

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étrable, vous pouvez mapper les paramètres de l'instruction à des variables. Pour plus d’informations, consultez Variables Integration Services (SSIS).

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 propriété : les variables permettent de fournir des valeurs dans les expressions de propriété qui définissent les propriétés d’objets de package et de 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 Expressions de propriété dans des packages.

Expressions de flux de données : les variables permettent de fournir des valeurs dans les expressions dont se servent les transformations de fractionnement conditionnel et de colonne dérivée pour remplir les colonnes ou diriger les lignes de données vers différentes sorties de transformation. Par exemple, l'expression @varSalutation + LastNameconcatè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 de la variable HighIncome. Pour plus d’informations, consultez Transformation de colonne dérivée, Transformation de fractionnement conditionnel et Expressions Integration Services (SSIS).

Expressions de contrainte de précédence : elles fournissent les 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 Ajouter des expressions aux contraintes de précédence.

Paramètres et codes de retour : ils fournissent des valeurs aux paramètres d’entrée 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 récupère le produit associé à la valeur ProductID 23. Pour plus d’informations, consultez Tâche d’exécution de requêtes SQL et Paramètres et codes de retour dans la tâche d’exécution SQL.

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

Configurations de variable de package parent : elles permettent de passer 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 : ils 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éer des configurations de package.

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