SSIS comment configurer dynamiquement une chaîne de connexion à partir d'un fichier de configuration

J'utilise SQL Server Integration Services (SSIS) dans SQL Server Business Intelligent Development Studio.

j'ai besoin de faire une tâche qui est comme suit. Je dois lire à partir d'une base de données source et le mettre dans un fichier plat de destination. Mais en même temps la base de données source doit être configurable.

cela signifie que dans le Gestionnaire de connexion OLEDB, la chaîne de connexion doit changer dynamiquement. Cette chaîne de connexion doit être prise à partir d'une configuration / XML / flat fichier.

j'ai lu que je peux utiliser des variables et des expressions pour changer la chaîne de connexion de façon dynamique. Mais comment puis-je lire la valeur de la chaîne de connexion à partir d'un fichier de configuration/XML/flat et définir la variable?

Cette partie, je suis incapable de le faire. Est-ce la bonne façon d'atteindre cet objectif? Peut-on ajouter des web.les fichiers de configuration d'un projet SSIS?

39
demandé sur Martin Prikryl 2010-03-23 08:59:04

5 réponses

tout d'abord ajouter une variable à votre paquet SSIS (Package Scope) - j'ai utilisé FileName, OleRootFilePath, OleProperties, OleProvider. Le type pour chaque variable est "string". Puis je crée un fichier de Configuration (sélectionnez chaque variable - valeur) - peupler les valeurs dans le fichier de configuration - par exemple: pour OleProperties - Microsoft.ACE.OLEDB.12.0; for OleProperties-Excel 8.0;HDR=, OleRootFilePath-Your Excel file path, FileName-FileName

dans le Gestionnaire de connexion-je mets alors le Propriétés-> Expressions-> Connexion expression de chaîne de façon dynamique par exemple:

"Provider=" + @[User::OleProvider] + "Data Source=" + @[User::OleRootFilePath]
+ @[User::FileName]  + ";Extended Properties=\"" + @[User::OleProperties] + "NO \""+";"

de cette façon, une fois que vous avez défini les valeurs des variables et que vous les avez modifiées dans votre fichier de configuration - la chaîne de connexion change de façon dynamique - ce qui aide surtout à passer d'un environnement de développement à un environnement de production.

29
répondu Lekha Mathew 2015-11-04 15:54:56

quelques options:

  1. Vous pouvez utiliser le Utilitaire D'Exécution De Package pour changer votre source de données, avant d'exécuter le package.

  2. vous pouvez lancer votre paquet en utilisant DTEXEC, et changez votre connexion en passant le paramètre a /CONNECTION. La prochaine fois que vous n'avez pas besoin de taper toute la chose et juste changer la source de données comme demandé.

  3. vous pouvez utiliser le SSIS XML configuration du paquet fichier. Voici un marche.

  4. vous pouvez enregistrer vos configrations dans une table de base de données.

26
répondu Darnell 2014-03-17 02:06:56

voici un arrière-plan sur le mécanisme que vous devez utiliser, appelé Configuration du paquet:Comprendre Le Package Integration Services Configurations. L'article décrit 5 types de configurations:

  • fichier de configuration XML
  • variable D'environnement
  • entrée du registre
  • package Parent variable
  • SQL Server

voici un aperçu de la configuration d'une connexion Gestionnaire: SQL Server Integration Services SSIS Package Configuration - je me rends compte qu'il s'agit d'utiliser une variable d'environnement pour la chaîne de connexion (ce n'est pas une bonne idée), mais les bases sont identiques à l'utilisation d'un fichier XML. Les seules étapes que vous devez changer dans ce walkthrough sont le type de configuration, puis un chemin.

10
répondu Todd McDermid 2016-11-16 12:49:31

propriétés du paquet Goto - > Configurations - > activer les Configurations du paquet - > Ajouter - > fichier de configuration xml - > spécifier le fichier dtsconfig - > cliquez sur Suivant - > dans les propriétés OLEDB, cochez la chaîne de connexion->la valeur de la chaîne de connexion sera affichée- > cliquez sur Suivant et le paquet fini est donc configuré.

Vous pouvez ajouter la variable d'Environnement aussi dans ce processus

2
répondu Sangeetha Bolla 2017-01-04 16:18:34

ces réponses sont justes, mais vieilles et travaillent pour Depoloyement Package Model. Ce dont j'avais réellement besoin, C'est de changer le nom du serveur, le nom de la base de données d'un gestionnaire de connexion et j'ai trouvé cela très utile:

https://www.youtube.com/watch?v=_yLAwTHH_GA

meilleur pour les utilisateurs de SQL Server 2012-2014-2016 ... Deployment Project Model

0
répondu Khalil Liraqui 2017-01-04 16:53:39