sql >> Base de Datos >  >> RDS >> Sqlserver

Cómo usar use if..else en Data Flow basado en valores de variables de usuario en SSIS

no puedes deshabilitar o habilitar transformaciones dentro de la Data Flow Task . Sin embargo, puede habilitar o deshabilitar las tareas de flujo de datos en el Control Flow pestaña.

Aquí hay una forma posible de hacer esto en la pestaña Flujo de control:

Si es posible, mueva las transformaciones de origen --> destino a tareas de flujo de datos individuales. Algo como lo que se muestra a continuación.

Supongamos que ha creado variables para cada flujo para habilitar o deshabilitar la tarea de flujo de datos en función de alguna condición. Para este ejemplo, he codificado algunos valores.

Para habilitar o deshabilitar dinámicamente las tareas de flujo de datos según la variable. Haga clic en una tarea de flujo de datos y presione F4 para ver Properties . En Propiedades, haga clic en los puntos suspensivos. junto a las Expressions propiedad. Verá el Editor de expresiones de propiedad.

Seleccione la Property Deshabilite y use los puntos suspensivos para ingresar la expresión [email protected][User::Enable_BESTELLDRUCK] Observe el signo de exclamación porque la variable se declara en Habilitar pero solo Disable la propiedad está disponible para que usted necesite hacer lo contrario.

Repita el proceso para otras tareas de flujo de datos con las variables adecuadas. Ejecute el paquete y notará que la segunda tarea de flujo de datos no se ejecutó porque la variable Enable_AKT_FEHLER se estableció en el valor False .

Espero que ayude.

Referencia:

Para cargar varias tablas con el mismo esquema dentro del contenedor ForEach Loop, eche un vistazo a la siguiente respuesta SO. Transfiere datos de MS Access a SQL Server. Con suerte, eso debería darle una idea.

¿Cómo obtengo mediante programación la lista de tablas de MS Access dentro de un paquete SSIS?