2014-06-27 8 views

risposta

15

Con l'aiuto delle espressioni è possibile rendere dinamica la connessione.

Selezionare la connessione file flat dal riquadro Gestioni connessioni. Nel riquadro Proprietà, fare clic su Espressione (...). Quindi selezionare Proprietà ConnectionString dall'elenco a discesa e in Espressione (...) inserire l'espressione e valutarla.

Espressione accumulo -

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())) 

Esempio espressione (è necessario modificare secondo il vostro requisito) -

"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" 

che sta dando E:\Backup\EmployeeCount_20140627.txt come valore.

Nota: è necessaria una connessione di file flat funzionante, quindi è necessario innanzitutto creare una connessione file flat la cui proprietà connectionString verrà quindi sostituita automaticamente tramite espressione.

È possibile seguire questi articoli passo dopo passo.

ssis dynamically naming destination

SSIS Dynamic Flat File Connection

enter image description here

enter image description here

+1

Ooh, mi piace il tuo meglio, ha purdy foto! :) – Kritner

1

Seleziona l'connessione file nelle Gestioni connessioni, passare alle proprietà e fare clic sul (...) accanto a espressioni.

Nell'editor selezionare ConnectionString dalla colonna Proprietà. Nella casella di testo Espressione, è possibile inserire qualcosa come "rootNameOfFile" + (DT_WSTR, 50) (DT_DBDATE) GETDATE() + ".csv"

Valutare la tua espressione per assicurarsi che stai ricevendo ciò che vi aspettate, e voilà!

0

Se non si dispone di SSDT e quindi non può modificare questo con una GUI ecco come si modifica direttamente il pacchetto SSIS :

Prima:

<DTS:ConnectionManager 
     DTS:refId="Package.ConnectionManagers[DestinationConnectionFlatFile]" 
     DTS:ObjectName="DestinationConnectionFlatFile" 
     DTS:DTSID="{C69365C4-EF12-4606-980B-E8862EE997A4}" 
     DTS:CreationName="FLATFILE"> 
     <DTS:ObjectData> 

Dopo:

<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>