2009-08-12 19 views
0

J'ai une tâche de flux de données qui prend une paire de tables, fusionne les données pertinentes et sort avec des résultats à mettre dans une table indexée . La table indexée contient déjà des données dont je ne me débarrasse pas et pour des raisons de simplicité, je devrais conserver leurs clés existantes. Donc, j'ai besoin de générer une clé qui commence à partir de la plus haute valeur de clé primaire déjà dans la colonne.Génération de la clé primaire avec un index non nul (flux de données SSIS)

J'ai trouvé a blog post qui fonctionne à partir de n'importe quelle valeur connue, mais ce flux de données sera éventuellement utilisé sur différentes bases de données, de sorte que la valeur ne sera pas constante. Ce sera toujours le maximum de la colonne, mais je ne peux pas trouver un moyen d'attraper cette valeur en utilisant le composant script suggéré ici.

+0

Y at-il une raison pour laquelle vous n'utilisez pas simplement une colonne d'identité? – HLGEM

+0

Il s'avère que j'avais mal interprété certaines restrictions sur le script; entre le commentaire de Mike et dormir dessus, je me suis très bien passé. –

Répondre

0

Ce type de chose est notoirement difficile à faire dans SSIS, c'est pourquoi j'essaie de l'éviter. Vous devez:

... accrochez-vous ...

-créer une variable dans votre package SSIS pour maintenir la valeur de départ

-créer une tâche SQL avec un paramètre mappé à cette variable avec une direction de sortie et une requête quelque chose comme "SET? = (SELECT MAX (IDValue) FROM Table)" - le point d'interrogation est l'espace réservé pour le paramètre qui mappe à la variable

-transformer la variable dans votre flux de données - probablement avec une transformation de colonne dérivée

J'espère que cela aide ...

Questions connexes