Interrogation d'une base de données basée sur les résultats d'une autre base de données
Dans SSIS, récupérer des données à partir de plusieurs bases de données peut être une tâche courante. Cet article explore trois méthodes pour exécuter une requête dans une base de données en fonction des résultats obtenus dans une autre :
Méthode 1 : Utiliser la transformation Lookup
Ajouter une transformation Lookup pour récupérer le Liste d'ID de la première base de données. Sélectionnez au moins une colonne dans la table de recherche. Cependant, pour filtrer les lignes en fonction de la liste d'ID, vous devez :
Méthode 2 : utilisation d'un script Tâche
Cette méthode permet d'éviter de charger toutes les données. Utilisez une tâche de script avec du code VB.NET pour récupérer la liste d'ID et la stocker dans une variable utilisateur. Définissez la variable comme source pour une tâche de flux de données ultérieure.
Méthode 3 : Utilisation de la tâche d'exécution SQL
Similaire à la méthode 2, mais en utilisant une tâche d'exécution SQL pour construisez la clause IN. Exécutez la commande SQL suivante pour récupérer un seul jeu de résultats contenant la liste d'ID et la requête :
DECLARE @str AS VARCHAR(4000) SET @str = '' SELECT @str = @str + CAST([ID] AS VARCHAR(255)) + ',' FROM dbo.MyTable SET @str = 'SELECT * FROM MySecondDB WHERE ID IN (' + SUBSTRING(@str,1,LEN(@str) - 1) + ')' SELECT @str
Stockez le résultat dans une variable utilisateur et définissez la propriété DataFlow Task Delay Validation sur True.
En tirant parti de l'une de ces méthodes, vous pouvez interroger efficacement une base de données sur la base des résultats obtenus à partir d'une autre base de données, vous permettant ainsi d'effectuer des opérations de données plus complexes au sein de vos packages SSIS.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!