2017-10-04 15 views
0

Je travaille sur un projet de nettoyage de données où j'exécute la première procédure stockée pour obtenir toutes les données qui ont un problème et les stocker dans une table de transfert1 avec ID, IND_REF, CODE .Besoin d'aide pour mettre à jour l'enregistrement avec foreach loop dans SSIS

structure Table est:

ID | IND_REF|CODE 
12 | 2333 |ABC 
13 | 1222 |EFG 

Maintenant, chaque code associé à IND_ref est la clé primaire de la table table2 et le courrier électronique où les données seront mises à jour.

Ensuite j'ai écrit une autre procédure stockée avec une instruction IF indiquant,

  • Si le code = ABC jour puis email scolaire e-mail principale où emailtable_ID = table de mise en scène IND_REF

Une fois la mise à jour toutes les ligne de la table de courrier électronique par référence de la table de transfert IND_REF J'ai utilisé une autre instruction if,

  • IF code = 'EFG' avant table2_ID = table de mise en scène IND_REF ...

et ainsi de suite ..

Fondamentalement, je veux mettre à jour la ligne de la table en direct en faisant référence CODE associée à chaque IND_REF ...

Puis-je accomplir ceci avec un paquet de SSIS? Puis-je faire une boucle dans la table de transfert pour mettre à jour la table en direct? Toute aide serait très appréciée. Je suis nouveau dans le monde SQL, donc je trouve difficile de faire une boucle sur chaque enregistrement en réglant le compteur pour mettre à jour la table en direct. toute aide avec script serait très utile.

+0

Pourquoi modifieriez-vous la table? Vous ne modifiez pas les colonnes. Tout ce dont vous avez besoin est une instruction de mise à jour _one_ pour faire tout cela. Vous n'avez pas besoin d'un curseur ou d'une boucle –

+0

Merci beaucoup Nick. Ma seule préoccupation est que j'ai capturé l'identifiant de compte de tous les enregistrements de problèmes et stocké chaque problème avec un code. Par exemple ID 123,444,333,22,11,1111, tous ont un nom d'organisation incorrect qui est enregistré dans ma table de transfert sous le code 'ILOL'. maintenant dans l'instruction de mise à jour j'ai référé si code = ILOL puis mise à jour de la table org où ID = table de transfert ind_ref.comment puis-je faire cette mise à jour en bouclant autour de la table de transit grâce à un paquet ssis – Biswa

Répondre

0

Je ne comprends pas votre question, mais permettez-moi de vous montrer un exemple:

Si nous avons une table comme ceci:

TABLE1 
ID ind_ref code 
1  1  ABC 
2  15  DEF 
3  17  GHI 

et une table comme ceci:

TABLE2 
ind_ref2 code 
1   ZZZ 
2   XXX 
3   DDD 
4   ZZZ 
5   XXX 
15  FFF 
17  GGG 

Ensuite, si nous exécutons cette requête:

UPDATE TABLE2 
SET Code = TABLE1.Code 
FROM TABLE1 
WHERE TABLE1.ind_ref = TABLE2.ind_ref2; 

Tableau 2 se termine comme ceci:

TABLE2 
ind_ref2 code 
1   ABC <= I got updated 
2   XXX 
3   DDD 
4   ZZZ 
5   XXX 
15  DEF <= me too 
17  GHI <= and me 

Si ce n'est pas vos données ou vos besoins, s'il vous plaît prendre le temps d'exposer des exemples que j'ai: expliquer les données que vous avez et ce que vous voulez ressembler à.

Remarque: SSIS n'est pas requis ici et aucun n'est en boucle.

+0

Salut Nick merci pour votre réponse, vous avez presque m'a .. je vais revenir à vous avec une explication correcte – Biswa

+0

J'ai mis à jour ma question. J'espère que cela vous aidera à comprendre ce que j'essaie de réaliser Nick. Merci beaucoup .. – Biswa

+0

Sauf si vous ajoutez des données d'échantillon comme j'ai, votre problème est opaque pour moi. Pouvez-vous au moins clarifier: combien de tables mettez-vous à jour? Juste une table ou plusieurs tables différentes? –