2009-02-06 14 views
7

Tengo un objeto Mulitcast de SSIS que divide mi flujo en dos rutas.Multidifusión SSIS - Espere a que termine una horquilla antes de ejecutar la horquilla siguiente

En la primera ruta, inserto el flujo en otra base de datos.

En la segunda ruta, actualizo las filas del flujo para mostrar que fueron insertadas.

Necesito una manera de hacer que un camino espere hasta que la otra ruta haya finalizado. (De modo que puedo manejar cualquier error de inserción y no actualizar las filas para aquellos que fueron errores.)

Se agradece cualquier ayuda.

Respuesta

3

Miré en esto más y aquí está la respuesta que se me ocurrió:

En cada salida de la multidifusión pongo una operación de ordenación, a continuación, me uno a ellos mediante una operación Cruce Mezclado. Después de eso, realizo una Actualización de SQL utilizando un comando OLE DB en los elementos que no tienen un valor de error de mergejoin.

+0

justo lo que necesitaba! Estaba tratando de resolver este problema usando una combinación de todo, pero no funcionó. Tengo 2 SCD, y quería que uno se ejecutara después de que uno haya terminado. Lo solucioné haciendo una multitarea, 2 ordenaciones, una combinación de fusión y otra clasificación después de eso para eliminar duplicados. – Mez

1

En ese caso, yo no usaría un multidifusión sino un flujo de datos regular de modo que no se empieza antes de la primera completada con éxito

2

No se puede hacer eso en SSIS. Solo puede imponer restricciones de precedencia (es decir, aplicar el orden de la ejecución) en el nivel de flujo de control.

1

Si sabe aproximadamente cuánto tiempo le tomará a una horquilla terminar, podría usar una orden OLE DB en su segunda horquilla. Escriba "waitfor delay '00: 00: 15 '" para que el servidor espere 15 segundos antes de pasar al siguiente paso.

Waitfor

+0

Elimina el espacio en blanco de tu publicación. –

Cuestiones relacionadas