Ir al contenido principal

Búsqueda o Lookups SSIS

Al final de post pongo los scripts para la base de datos. En el ejemplo se ve una de las formas de comparar dos tablas, como si fuera un "... FROM ... INNER JOIN ...".


Usando las tablas de la imagen de arriba, dentro de un DataFlow, hay que crear un OleDB Source, LookUp, y dos OleDB Destination.




Full cache levanta los datos a memoria antes de hacer el JOIN.
OLE DB connection manager es para poder levantar datos desde una consulta SQL.


Se une el campo clave, por el cual se va a hacer el JOIN.




Codigo para la base de datos:
CREATE TABLE dbo.Cabecera ( idCabecera INT PRIMARY KEY IDENTITY(1,1), Cabecera VARCHAR(254) ) GO
INSERT INTO dbo.Cabecera(Cabecera) VALUES ('Dato 1') INSERT INTO dbo.Cabecera(Cabecera) VALUES ('Dato 2') INSERT INTO dbo.Cabecera(Cabecera) VALUES ('Dato 3') INSERT INTO dbo.Cabecera(Cabecera) VALUES ('Dato 4') INSERT INTO dbo.Cabecera(Cabecera) VALUES ('Dato 5') GO
CREATE TABLE dbo.Detalle ( idDetalle INT PRIMARY KEY IDENTITY(1,1), idCabecera INT, Detalle VARCHAR(254) ) GO
INSERT INTO dbo.Detalle(idCabecera, Detalle) VALUES (4, 'Detalle 4') INSERT INTO dbo.Detalle(idCabecera, Detalle) VALUES (5, 'Detalle 5') GO
CREATE TABLE dbo.ConDetalle ( idConDetalle INT PRIMARY KEY IDENTITY(1,1), idCabecera INT, idDetalle INT, Cabecera VARCHAR(254), Detalle VARCHAR(254) ) GO
CREATE TABLE dbo.SinDetalle ( idSinDetalle INT PRIMARY KEY IDENTITY(1,1), idCabecera INT, Cabecera VARCHAR(254), )

Comentarios

Entradas populares de este blog

Crear Excel con C# sin librerias de Office - SpreadsheetLight

En este ejemplo se crea un archivo Excel(xlsx) con dos hojas. La libreria hay que usar es SpreadsheetLight. El codigo es de un proyecto de consola y logicamente le falta el: using SpreadsheetLight;

Cargar Archivo de texto a Sql Server con Integration Services SSIS

Script usado en el ejemplo: CREATE TABLE dbo.Personas ( idPersona INT PRIMARY KEY IDENTITY(1,1), Codigo VARCHAR(3), Nombres VARCHAR(17), Edad VARCHAR(3), Fecha VARCHAR(8), Ocupacion VARCHAR(13) ) Archivo: 001Juan Perez 02931122000Estudiante 002Juana Rosi 05301011982Profesor 003Edgar Bravo 03131121990Comerciante 004Monica Argento 04031121972Medico 005Jorge Lopez 02231121932Desocupado 006Ezequiel Bianchi 02131121987Deportista 007Pepe Argento 02731121960Actor

DataTable con C#

Crea un DataTable. Crea sus columnas, una es de tipo entero auto incremental. Carga dos registros y luego son mostrados por consola. NameSpace necesario: System.Data DataTable dt = new DataTable("Personas"); DataColumn colIdPersona = dt.Columns.Add("idPersona", typeof(Int32)); colIdPersona.AllowDBNull = false; colIdPersona.Unique = true; colIdPersona.AutoIncrement = true; colIdPersona.AutoIncrementSeed = 1; colIdPersona.AutoIncrementStep = 1; DataColumn colNombre = dt.Columns.Add("Nombre", typeof(string)); colNombre.AllowDBNull = false; dt.Columns.Add("Edad", typeof(Int16)); dt.Columns.Add("FechaNacimiento", typeof(DateTime)); dt.Rows.Add(null, "Jorge", 44, Convert.ToDateTime("31/12/1970").ToString("dd/MM/yyyy")); dt.Rows.Add(null, "Valeria", 30, Convert.ToDateTime("12/02/1986").ToString("dd/MM/yyyy")); foreach (DataRow item in dt.Rows) { Console.WriteLine(item[0])...