Ajouter un compteur incrémentiel dans un package SQL Server 2005 Integration Services à l’aide d’un composant de script dans une tâche de flux de données


INTRODUCTION


Lorsque vous créez un package Microsoft SQL Server 2005 Integration Services (SSIS) à l’aide de Business Intelligence Development Studio, vous pouvez ajouter un compteur incrémentiel à tout moment d’un flux de données à l’aide d’un composant de script dans une tâche de flux de données. Par exemple, vous pouvez être amené à insérer un compteur incrémentiel par ligne après une source de données. Vous pouvez ensuite enregistrer et identifier le nombre de lignes dont le chargement a réussi, puis rediriger les lignes qui ne sont pas chargées. Si vous êtes intéressé uniquement par un décompte définitif, vous pouvez utiliser une transformation de comptage de lignes pour ajouter un compteur. La différence entre l’utilisation d’un composant de script pour ajouter un compteur et l’utilisation d’une transformation de comptage de lignes pour ajouter un compteur est la suivante :
  • Un composant de script ajoute une valeur incrémentielle à votre flux de données en tant que nouvelle valeur de colonne dans chaque ligne.
  • Une transformation de comptage de lignes ajoute et met à jour la valeur du compteur actuel en une seule variable définie par l’utilisateur.

Informations supplémentaires


Pour ajouter un compteur incrémentiel à l’aide d’un composant de script dans une tâche de flux de données, procédez comme suit :
  1. Dans l’onglet flux de contrôle , double-cliquez sur la tâche de flux de données que vous avez créée. L’onglet flux de donnéess’affiche.
  2. Dans la fenêtre boîte à outils, double-cliquez sur composant de script.
  3. Dans la boîte de dialoguesélection du type de composant script , cliquez sur transformation, puis sur OK pour préconfigurer le composant en tant que transformation.
  4. Pour ajouter un connecteur à partir de la source du flux de données au composant de script, cliquez avec le bouton droit sur la source du flux de données, puis cliquez sur Ajouter une trajectoire.
  5. Pour ajouter un connecteur à partir du composant de script à la destination du flux de données, cliquez avec le bouton droit sur le composant de script, puis cliquez sur Ajouter une trajectoire.
  6. Double-cliquez sur le composant de script. La boîte de dialogue éditeur de transformation de script s’affiche.
  7. Cliquez sur entrées et sorties dans le volet gauche, double-cliquez sur sortie 0 dans le volet du milieu, puis cliquez sur colonnes de sortie.
  8. Cliquez sur Ajouter une colonne, puis ajoutez une nouvelle colonne nommée MyCount.
  9. Cliquez sur script dans le volet gauche, puis sur créer un script. Quand une nouvelle fenêtre Microsoft Visual Studio pour applications s’affiche, collez le code suivant dans la fenêtre.
    Imports SystemImports System.DataImports System.MathImports Microsoft.SqlServer.Dts.Pipeline.WrapperImports Microsoft.SqlServer.Dts.Runtime.WrapperPublic Class ScriptMain    Inherits UserComponent    Dim counter As Integer = 0  ' User code    Public Overrides Sub Input0_ProcessInputRow(ByVal Row As Input0Buffer)        '        ' Add your code here        Row.mycount = counter   ' User code        counter = counter + 1   ' User code        '    End SubEnd Class
  10. Dans la boîte de dialogue éditeur de transformation de script , cliquez sur OK.
Une fois ces étapes terminées, vous pouvez utiliser la colonne MyCount en tant que colonne dans la destination du flux de données. Vous pouvez développer les fonctionnalités de l’exemple de code pour ajouter des informations supplémentaires. Par exemple, vous pouvez ajouter la variable système ExecutionInstanceGuid ou un cachet de date et d’heure.Remarque La colonne MyCount que vous avez ajoutée reflète l’ordre dans lequel le composant de script a traité les lignes. La colonne MyCount ne reflète pas nécessairement le numéro de ligne réel dans la source d’origine. Ceci est particulièrement vrai lorsque vous insérez le composant de script après d’autres transformations dans le flux de données, parce que tous les objets de flux de données avant le composant de script peuvent filtrer les données ou rediriger les lignes.

Références


Pour plus d’informations, reportez-vous aux rubriques suivantes dans la documentation en ligne de SQL Server 2005 :
  • SQL Server Integration Services (SSIS)
  • Composant de script
  • Configuration du composant de script
  • Codage et test du composant de script
  • Transformation du comptage de lignes