stored - ¿Hay alguna manera de ejecutar código T-SQL dentro de un flujo de datos en SSIS?
ejecutar ssis desde stored procedure (1)
Si te entiendo, tienes un data mart con una dimensión de tiempo, y necesitas obtener el timeID que corresponde a un tiempo en particular.
Si eso es correcto, entonces quiere usar un componente de búsqueda. Para la tabla de referencia use algo como SELECT timeId, timeStamp FROM TimeDimension
, luego busque contra la columna de entrada que contiene la marca de tiempo. Use timeId como la columna de salida, y ahora cada fila en su flujo de datos tendrá el timeId que corresponde a su marca de tiempo.
Fondo
Tengo una tabla de dimensiones que tiene un registro único para cada día. Cada registro tiene una clave principal, por lo que los datos de ejemplo serían:
Dimension Table --------------- --------------------------------- | ID | DateTime | --------------------------------- | 1083 | 04/10/2008 10:02:00 PM | ---------------------------------
Lo que trato de hacer es tomar mi columna de datos de origen que tiene un valor de fecha y hora de SQL (como 04/10/2008 10:02:00 PM
) y hacer que SSIS 04/10/2008 10:02:00 PM
la clave primaria de la tabla de dimensiones ( 1083
en el ejemplo de arriba). Estoy intentando adaptar esto al flujo de datos dentro de mi paquete y evitar el uso de tablas de etapas.
Me gustaría llamar a una función de base de datos durante mi flujo de datos para que mi paquete SSIS descubra el timeid
para un registro de datetime
y datetime
. Intenté usar DeriveColumn
pero eso no parece permitir el uso de T-SQL; más bien solo funciones que están integradas en ANSI SQL.
Pregunta
¿Hay alguna otra manera de hacer esto dentro del flujo de datos? ¿O tendré que usar tablas de etapas y usar SQLTask
fuera del flujo de datos para manipular mis datos?