2010-12-06 4 views
2

J'utilise Visual Studio 2005 pour créer un package qui va déposer un fichier plat (.txt) dans un emplacement spécifié. Le package sera exécuté tous les jours de la semaine. Actuellement, le fichier qui est déposé est simplement appelé summary.txt, et le fichier est simplement écrasé chaque jour pour un nouveau contenu. Qu'est-ce que je voudrais faire à la place est de changer le nom du fichier à summarymmddyyy.txt, et juste ajouter un nouveau fichier à l'emplacement tous les jours avec la date de dépôt. Donc, aujourd'hui ce serait summary12062010.txt, demain serait summary12072010.txt, etc. Y at-il un moyen de le faire dans un paquet SSIS? Vraiment, tout ce que je fais est un flux de données simple qui fait une déclaration de sélection d'une source de base de données SQL à ce fichier plat - rien de trop chic. Merci!Ajouter une date à un fichier .txt dans un package SSIS?

Répondre

3

Vous pouvez utiliser une variable évaluée en tant qu'expression pour créer le nom de fichier.

Ajoutez une nouvelle variable SSIS à votre package. Sélectionnez la nouvelle variable dans la fenêtre Variables et affichez les propriétés (appuyez sur F4). Définissez la propriété EvaluateAsExpression True et entrez les informations suivantes pour la valeur de la propriété d'expression

"summary" + RIGHT("0" + (DT_STR, 2, 1252) (DATEPART("mm", GETDATE())), 2) + RIGHT("0" + (DT_STR, 2, 1252) (DATEPART("dd", GETDATE())), 2) + (DT_STR, 4, 1252) (DATEPART("yyyy", GETDATE())) + ".txt" 

Cette expression utilise des fonctions pour extraire le mois, le jour et les valeurs année, et comprend les valeurs pour créer le nom en fonction de la date d'aujourd'hui.

Sélectionnez le gestionnaire de connexions pour votre fichier plat. Afficher les propriétés (appuyez sur F4). Sélectionnez la propriété Expressions et cliquez sur le bouton elipsis (...). Dans l'éditeur d'expression de propriété, sélectionnez la propriété ConnectionString. Et entrez le nom de votre nouvelle variable dans le format suivant:

@[User::MyVariable] 

Si vous devez inclure le chemin, créez l'expression comme ceci:

"C:\MyFiles\" + @[User::MyVariable] 

Si vous préférez, vous pouvez éviter la variable et mettez l'expression entière dans la propriété ConnectionString:

"C:\MyFiles\" + "summary" + RIGHT("0" + (DT_STR, 2, 1252) (DATEPART("mm", GETDATE())), 2) + RIGHT("0" + (DT_STR, 2, 1252) (DATEPART("dd", GETDATE())), 2) + (DT_STR, 4, 1252) (DATEPART("yyyy", GETDATE())) + ".txt" 
+0

Impressionnant impressionnant génial! J'ai choisi la première option pour créer une variable. Très simple et fonctionne comme un charme. Merci! – SeanFlynn

Questions connexes