Ich plane ein SSIS-Paket für den Export von Daten in eine Einfachdatei.
Ich möchte jedoch Dateinamen mit Datumsangaben generieren, z. B. foo_20140606.csv
Ist es möglich?
Vielen Dank
Mit Hilfe von Ausdrücken können Sie die Verbindung dynamisieren.
Wählen Sie im Bereich Verbindungsmanager Ihre Flat-File-Verbindung aus. Klicken Sie im Eigenschaftenbereich auf Ausdruck (...). Wählen Sie dann ConnectionString-Eigenschaft aus der Dropdown-Liste aus und geben Sie in Expression (...) Ihren Ausdruck ein und werten Sie ihn aus.
Ausdruck bauen -
For day : (DT_STR,4,1252)DAY( DATEADD( "dd", -1, getdate() ))
For month: (DT_STR,4,1252)MONTH( DATEADD( "dd", -1, getdate() ))
For Year: (DT_STR,4,1252)YEAR( DATEADD( "dd", -1, getdate() ))
Beispielausdruck (Sie müssen gemäß Ihrer Anforderung anpassen) -
"E:\\Backup\\EmployeeCount_"+(DT_STR,4,1252)DATEPART( "yyyy" , getdate() ) + RIGHT("0" + (DT_STR,4,1252)DATEPART( "mm" , getdate() ), 2) + RIGHT("0" + (DT_STR,4,1252)DATEPART( "dd" , getdate() ), 2) +".txt"
was E:\Backup\EmployeeCount_20140627.txt
als Wert angibt.
Bitte beachten Sie - Sie benötigen eine Flat-File-Verbindung, erstellen Sie also zunächst eine Flat-File-Verbindung, deren Eigenschaft connectionString automatisch durch einen Ausdruck ersetzt wird.
Sie können diese Artikel auch Schritt für Schritt verfolgen.
ssis dynamisches Ziel benennen
Dynamische SSIS-Flat-File-Verbindung
Wählen Sie Ihre Dateiverbindung in den Verbindungsmanagern aus, gehen Sie zu den Eigenschaften und klicken Sie auf die (...) neben Ausdrücken.
Wählen Sie im Editor ConnectionString aus der Spalte Property aus. Geben Sie im Textfeld Ausdruck so etwas wie "rootNameOfFile" + (DT_WSTR, 50) (DT_DBDATE) GETDATE () + ".csv" ein.
Bewerten Sie Ihren Ausdruck, um sicherzustellen, dass Sie das bekommen, was Sie erwarten, und voila!
sie können den dynamischen Dateinamen für eine flache oder csv-Datei im SSIS-Paket wie DataFeed_ {yyyyMMdd} .txt angeben, z. DataFeed_20181212.txt. Rufen Sie einfach die Flat-File-Connection-Manager-Eigenschaft auf und definieren Sie den Ausdruckswert. Auf andere Weise können Sie die Variable auf Paketebene und diese Variable, die Sie in expression verwenden können, definieren. Je nach Umgebung können Sie den Ordnerpfad mithilfe der Konfigurationsdatei .dtsconfig definieren
mehr Details @ ssis dynamischer Dateiname für Flatfile
Wenn Sie nicht über SSDT verfügen und dies daher nicht mit einer grafischen Benutzeroberfläche bearbeiten können, können Sie das SSIS-Paket direkt bearbeiten:
Vor:
<DTS:ConnectionManager
DTS:refId="Package.ConnectionManagers[DestinationConnectionFlatFile]"
DTS:ObjectName="DestinationConnectionFlatFile"
DTS:DTSID="{C69365C4-EF12-4606-980B-E8862EE997A4}"
DTS:CreationName="FLATFILE">
<DTS:ObjectData>
Nach dem:
<DTS:ConnectionManager
DTS:refId="Package.ConnectionManagers[DestinationConnectionFlatFile]"
DTS:CreationName="FLATFILE"
DTS:DTSID="{C69365C4-EF12-4606-980B-E8862EE997A4}"
DTS:ObjectName="DestinationConnectionFlatFile">
<DTS:PropertyExpression
DTS:Name="ConnectionString">"C:\\Exportdir\\Filename_"
+ (DT_WSTR,4)DATEPART("yyyy",GetDate()) +
RIGHT("0" + (DT_WSTR,2)DATEPART("mm",GetDate()) ,2) +
RIGHT("0" + (DT_WSTR,2)DATEPART("dd",GetDate()),2) + "_" +
RIGHT("0" + (DT_WSTR,2)DATEPART("hh",GetDate()),2)+
RIGHT("0" + (DT_WSTR,2)DATEPART("mi",GetDate()),2) + ".csv"
</DTS:PropertyExpression>
<DTS:ObjectData>