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

SSIS:realizar una búsqueda en otra tabla para obtener una columna relacionada

En realidad, este es un caso para Lookup. Parece que desea hacer una búsqueda por nombre y devolver la identificación. Bastante simple. Así es como creé un ejemplo de esto:

  1. Arrastre una tarea de flujo de datos a la superficie de diseño. Haga doble clic en él para cambiar a él.
  2. Crear un administrador de conexiones para mi base de datos
  3. Arrastre a la superficie de diseño:
    • una fuente OLE DB
    • Una transformación de búsqueda
    • Un destino OLE DB
  4. Conecte el origen a la búsqueda al destino. Es la "salida de coincidencia de búsqueda" que queremos que vaya al destino. Ver figura 1.
  5. Configure la fuente. Mi tabla de origen solo tenía columnas de identificación y nombre.
  6. Configurar la búsqueda
    • Pestaña General:usar una conexión OLE DB
    • Pestaña Conexión:especifique la misma conexión, pero utilice la tabla de búsqueda. Mi tabla de búsqueda era solo id y nombre, pero el nombre se hizo único, por lo que tiene más sentido como columna de búsqueda.
    • En la pestaña de columnas, configure el nombre para asignarlo al nombre, con "id" como salida. Configure la operación de búsqueda para que sea "agregar nueva columna" y nombre esa columna como "lookupId". Ver figura 2.
    • Ignorar las otras dos pestañas
  7. Configure la salida para tomar las tres columnas. Ver figura 3.

Eso es todo. Para cada fila del origen, la columna de nombre se utilizará para que coincida con la columna de nombre de la tabla de búsqueda. Cada coincidencia aportará su columna de id como la nueva columna lookupId. Las tres columnas procederán al destino.

Figura 1:

Figura 2:

Figura 3: