2009-04-15 5 views
0

J'ai une table dans ma base de données source qui est auto-référencéeSSIS - clé de substitution de recherche pour parent

| BusinessID | ... | ParentID |

Cette table est modélisée dans le fichier DW en tant que | SurrogateID | BusinessID | ParentID |

La première question est, si le ParentID dans le DW référence l'id de substitution ou l'id de l'entreprise. Mon idée est que cela devrait faire référence à l'identifiant de substitution.

Puis mon problème se produit, dans ma tâche de flux de données de SSIS, comment puis-je rechercher la clé de substitution du parent?

Si j'insère toutes les lignes où ParentID est nul en premier, puis celles qui ne le sont pas, je résous une partie du problème.

Mais je dois toujours rechercher les lignes pouvant référencer un parent qui est également un enfant.

I.e. Je dois m'assurer que les parents sont chargés en premier dans la base de données pour pouvoir utiliser la transformation de recherche.

Dois-je résoudre un pour-chacun avec une entrée triée?

+0

duplication possible de [comment construire la table d'auto-référencement] (http://stackoverflow.com/questions/11834672/how-to-build-self-referencing-table) – AHiggins

Répondre

1

Une astuce que j'ai utilisée dans cette situation consiste à charger les lignes sans le ParentID. J'ai ensuite utilisé un autre flux de données pour créer un script de mise à jour basé sur les données source et les données chargées, puis utilisé une tâche SQL pour exécuter le script de mise à jour créé. Il ne gagnera pas de prix pour l'élégance, mais cela fonctionne.

+0

A travaillé parfait, merci! –

Questions connexes