Partager via


Variables Integration Services

Les variables stockent des valeurs qu'un package SQL ServerIntegration Services et ses conteneurs, tâches et gestionnaires d'événements peuvent utiliser au moment de l'exécution. Les scripts de la tâche de script et du composant Script peuvent également utiliser des variables. Les contraintes de précédence qui séquencent les tâches et les conteneurs dans un flux de travail peuvent utiliser des variables lorsque leurs définitions de contraintes incluent des expressions.

Vous pouvez utiliser des variables dans des packages Integration Services pour les opérations suivantes :

  • Mise à jour de propriétés d'éléments de package au moment de l'exécution. Par exemple, vous pouvez dynamiquement définir le nombre d'exécutables simultanés qu'un conteneur de boucles Foreach autorise.

  • Inclusion d'une table de recherche en mémoire. Par exemple, un package peut exécuter une tâche d'exécution SQL qui charge une variable avec des valeurs de données.

  • Chargement de variables avec des valeurs de données, puis utilisation de ces variables pour spécifier une condition de recherche dans une clause WHERE. Par exemple, le script dans une tâche de script peut mettre à jour la valeur d'une variable qui est utilisée par une instruction Transact-SQL dans une tâche d'exécution SQL.

  • Chargement d'une variable avec un entier, puis utilisation de la valeur pour contrôler le bouclage au sein d'un flux de contrôle de package. Par exemple, vous pouvez utiliser une variable dans l'expression d'évaluation d'un conteneur de boucles For pour contrôler l'itération.

  • Remplissage de valeurs de paramètres pour des instructions Transact-SQL au moment de l'exécution. Par exemple, un package peut exécuter une tâche d'exécution SQL, puis utiliser des variables pour définir dynamiquement les paramètres d'une instruction Transact-SQL.

  • Création d'expressions qui incluent des valeurs de variables. Par exemple, la transformation de colonnes dérivées peut remplir une colonne avec le résultat obtenu suite à la multiplication d'une valeur de variable par une valeur de colonne.

Integration Services prend en charge deux types de variables : les variables définies par l'utilisateur et les variables système. Les variables définies par l'utilisateur sont définies par les développeurs de packages, tandis que les variables système sont définies par Integration Services. Vous pouvez créer autant de variables définies par l'utilisateur qu'un package l'exige, mais vous ne pouvez pas créer de variables système supplémentaires.

Toutes les variables (système et définies par l'utilisateur) peuvent être utilisées dans les liaisons de paramètres que la tâche d'exécution SQL utilise pour mapper des variables à des paramètres dans des instructions SQL. 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.

[!REMARQUE]

Les noms des variables définies par l'utilisateur et des variables système respectent la casse.

Vous pouvez créer des variables définies par l'utilisateur pour tous les types de conteneurs Integration Services : packages, conteneurs de boucles Foreach, conteneurs de boucles For, conteneurs de séquences, tâches et gestionnaires d'événements. Les variables définies par l'utilisateur sont des membres de la collection Variables du conteneur.

Si vous créez le package à l'aide du concepteur SSIS, vous pouvez afficher les membres de la collection Variables dans le dossier Variables sous l'onglet Explorateur de package du concepteur SSIS. Les dossiers répertorient les variables définies par l'utilisateur et les variables système.

Vous pouvez configurer les variables définies par l'utilisateur de plusieurs manières :

  • Spécifiez un nom et une description pour la variable.

  • Spécifiez un espace de noms pour la variable.

  • Indiquez si la variable déclenche un événement lorsque sa valeur change.

  • Indiquez si la variable est en lecture seule ou accessible en lecture/écriture.

  • Utilisez le résultat de l'évaluation d'une expression pour définir la valeur de la variable.

  • Créez la variable dans la portée du package ou un objet de package tel qu'une tâche.

  • Spécifiez la valeur et le type de données de la variable.

La seule option configurable des variables système est le déclenchement d'un événement lorsque leur variable change.

Un ensemble de variables système différent est disponible pour différents types de conteneurs. Pour plus d'informations sur les variables système utilisées par les packages et leurs éléments, consultez Variables système.

Pour plus d'informations sur les scénarios d'utilisation concrète des variables, consultez Utilisation de variables dans des packages.

Espace de noms

Integration Services fournit deux espaces de noms, User et System. Par défaut, les variables personnalisées sont dans l'espace de noms User et les variables système sont dans l'espace de noms System. Vous pouvez créer des espaces de noms supplémentaires pour les variables définies par l'utilisateur et changer le nom de l'espace de noms User, mais vous ne pouvez pas modifier le nom de l'espace de noms System, ajouter des variables à l'espace de noms, ni assigner des variables système à un autre espace de noms.

Portée

Une variable est créée dans la portée d'un package ou dans la portée d'un conteneur, d'une tâche ou d'un gestionnaire d'événements dans le package. Le conteneur de packages se trouvant au sommet de la hiérarchie de conteneurs, les variables avec une portée de package fonctionnent comme les variables globales et peuvent être utilisées par tous les conteneurs du package. De même, les variables définies dans la portée d'un conteneur tel qu'un conteneur de boucles For peuvent être utilisées par toutes les tâches ou les conteneurs situés dans le conteneur de boucles For.

Si un package exécute d'autres packages par le biais de la tâche d'exécution de package, les variables définies dans la portée du package appelant ou de la tâche d'exécution de package peuvent être mises à disposition du package appelé à l'aide du type de configuration Variable de package parent. Pour plus d'informations, consultez Configurations de package.

Valeur

La valeur d'une variable définie par l'utilisateur peut être un littéral ou une expression. Une variable inclut des options permettant de définir la valeur de la variable et le type de données de la valeur. Les deux propriétés doivent être compatibles : par exemple, l'utilisation d'une valeur de chaîne avec un type de données Integer n'est pas valide.

Si la variable est configurée de façon à correspondre à une expression, vous devez fournir une expression. Au moment de l'exécution, l'expression est évaluée et le résultat de l'évaluation est affecté comme valeur de la variable. Par exemple, si une variable utilise l'expression DATEPART("month", GETDATE()) , la valeur de la variable est l'équivalent numérique du mois de la date actuelle. L'expression doit être une expression valide qui utilise la syntaxe de grammaire d'expression SSIS. Lorsqu'une expression est utilisée avec des variables, elle peut utiliser des littéraux et les opérateurs et fonctions fournis par la grammaire d'expression, mais elle ne peut pas faire référence aux colonnes d'un flux de données du package. La longueur maximale d'une expression est limitée à 4 000 caractères. Pour plus d'informations, consultez Informations de référence des expressions Integration Services.

Configuration des variables

Vous pouvez définir les propriétés par le biais du concepteur SSIS ou par programme.

Pour plus d'informations sur les propriétés que vous pouvez définir dans le concepteur SSIS, consultez Fenêtre Variables.

Configuration des variables par programme

Pour en savoir plus sur les propriétés des variables et pour plus d'informations sur la définition de ces propriétés par programme, consultez Variable.

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.