2017-10-04 4 views
0

J'ai un package SSIS avec une variable (objet) qui prend ses valeurs dans une tâche de script (quelque chose comme: lettres {A, B, C, D}), et un conteneur foreach qui fait quelque chose avec chaque lettre.Paramètres de passe SQL Job

Je souhaite créer un travail pour ce package SSIS. Comment est-ce que je passerais la variable "lettres" du travail? Je veux ajouter plus de lettres dans la liste si je peux; Je veux créer cette variable à partir du travail.

exemple: lettres {A, B, C, D, E}

je sais que est quelque chose comme ceci:

@l
déclare set @l = 'A'
sélectionnez @l = '/ SET \ Package.Variables [User :: letters] .Proprieties [Valeur]'

Désolé, ce n'est pas clair. Je ne suis pas sûr de savoir comment expliquer.

+2

Vous devez créer des paramètres de package. Ensuite, vous pouvez fournir des valeurs lorsque vous configurez votre travail – PacoDePaco

+0

ouais ... mais maintenant j'ai une liste que je crée dans une tâche de script. Comment puis-je le créer à partir du travail. Parce que cette liste peut avoir différents nombres de paramètres. (parfois la liste peut en avoir 4, parfois en avoir 20). Je dois ajouter les paramètres passés depuis le job dans la liste (dans ma variable) – istuc

Répondre

0

En fait, vous devez créer un paramètre de projet, et dans la liste des variables de votre tâche de script, vous passez votre paramètre ($ project). Vous pouvez également le définir comme requis ou non, donc quand il n'est pas informé dans le travail, vous pouvez définir une certaine logique dans le paquet et assigner une nouvelle valeur, comme vous l'avez dit {A, B, C, D, E}.

0

Je ferais quelque chose de légèrement différent mais je fais une grande supposition.

Vous pouvez définir les valeurs que vous souhaitez parcourir en boucle. Pour cet exemple, je suppose que vous pouvez interroger vos valeurs.

Définissez une variable appelée LoopList en tant qu'objet de type de données.

Set var LoopItem en tant que chaîne

Exec objet SQL:

  1. Set conn de données.
  2. Set jeu de résultats dans l'ensemble complet Résultat
  3. sur jeu de résultats carte onglet à LoopList variables
  4. Ajoutez votre requête quelque chose comme Select val de la table ou autre.

ForEachLoop:

  1. Collection est foreach ADO
  2. Choisissez ADO source de LoopList
  3. Carte LoopItem à Index0 maintenant

vous pouvez exécuter tout ce que vous vouliez faire sans avoir à passer les paramètres.