Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Come utilizzare use if..else nel flusso di dati in base ai valori delle variabili utente in SSIS

Non puoi disabilitare o abilitare le trasformazioni all'interno dell'Data Flow Task . Tuttavia, puoi abilitare o disabilitare le attività del flusso di dati in Control Flow scheda.

Ecco un possibile modo per farlo nella scheda Flusso di controllo:

Se è possibile, sposta le trasformazioni di origine -> destinazione in singole attività del flusso di dati. Qualcosa come mostrato di seguito.

Si supponga di aver creato variabili per ogni flusso per abilitare o disabilitare l'attività flusso di dati in base ad alcune condizioni. Per questo esempio, ho codificato alcuni valori.

Per abilitare o disabilitare dinamicamente le attività del flusso di dati in base alla variabile. Fai clic su un'attività del flusso di dati e premi F4 per visualizzare le Properties . Nelle proprietà, fai clic sui puntini di sospensione accanto a Expressions proprietà. Vedrai l'editor delle espressioni di proprietà.

Seleziona la Properties Disattiva e utilizza i puntini di sospensione pulsante per inserire l'espressione [email protected][User::Enable_BESTELLDRUCK] Notare il punto esclamativo perché la variabile è dichiarata su Abilita ma solo Disable la proprietà è a tua disposizione devi fare il contrario.

Ripetere il processo per altre attività del flusso di dati con le variabili appropriate. Esegui il pacchetto e noterai che la seconda attività del flusso di dati non è stata eseguita perché la variabile Enable_AKT_FEHLER è stato impostato sul valore False .

Spero di esserti stato d'aiuto.

Riferimento:

Per caricare più tabelle con lo stesso schema all'interno del contenitore ForEach Loop, dai un'occhiata alla risposta SO di seguito. Trasferisce i dati da MS Access a SQL Server. Si spera che questo dovrebbe darti un'idea.

Come posso ottenere a livello di codice l'elenco delle tabelle di MS Access all'interno di un pacchetto SSIS?