2017-02-03 5 views
1

je voudrais mettre en œuvre la logique suivante à ma requête de recherche comme une expression:SSIS: dynamique de recherche de requête

SELECT ID, 
     CASE @[User::ConnectionStringID] 
     WHEN 1 THEN "NE" 
     WHEN 2 THEN "BALT" 
     WHEN 3 THEN "NY" 
     WHEN 4 THEN "PA" 
     END AS Region 
FROM dbo.Table; 

Mon package est exécuté dans une boucle où la chaîne de connexion est mise à jour dynamiquement à l'aide d'un fichier de configuration et il boucle 4 fois comme indiqué dans la logique ci-dessus.

J'ai réalisé aujourd'hui que la transformation Recherche n'a aucune expression disponible et je n'ai pas réussi à trouver une autre solution appropriée. Est-ce que quelqu'un a trouvé un moyen de contourner ceci ou un script de transformation personnalisé?

+0

Si vous accédez '@@ propriété ServerName' ou quelque chose similaire à 'SELECT SERVERPROPERTY ('ServerName') Comme ServerName' ne pouvez-vous pas changer votre conditionnel? – billinkc

+0

Si SSIS possède déjà les informations nécessaires pour générer la colonne sans la recherche, utilisez une colonne dérivée ou une autre transformation. – SQLFox

Répondre

3

contrôle de recherche a des expressions, mais ne peut pas accéder directement à partir juste aller à vos Dataflowtask propriétés et accéder aux expressions comme indiqué dans l'image ci-dessous

enter image description here

+0

merci pour votre réponse. Je vois ces deux champs dans la vue des propriétés mais comment avez-vous ouvert cet éditeur d'expressions pour la tâche de flux de données? –

+0

Cliquez sur la fiche de flux de données et appuyez sur F4 pour obtenir l'onglet Propriétés comme indiqué sur le côté droit de l'image. Dans l'onglet Propriétés, cliquez sur les expressions – Hadi

+1

Lorsque vous cliquez sur la propriété expressions un petit bouton apparaîtra dessus. Cliquez dessus pour ouvrir cette fenêtre – Hadi