Conversión de datos con SSIS 2008 con División Condicional, Columna Derivada y Dos Destinos OLE DB

Para solucionar el problema planteado la vez anterior lo que haremos, de momento, será crear otro destino igual al que ya tenemos.

ColDevi2Desti

Para comprobar que funciona bien, elimino y creo la tabla, asegurándome de que Nombre tenga longitud 15

USE [MiDestino]

GO

/****** Object:  Table [dbo].[ProductosFecha]    Script Date: 10/30/2010 18:46:07 ******/

IF  EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ProductosFecha]’) AND type in (N’U’))

DROP TABLE [dbo].[ProductosFecha]

GO

USE [MiDestino]

GO

/****** Object:  Table [dbo].[ProductosFecha]    Script Date: 10/30/2010 18:46:08 ******/

SET ANSI_NULLS ON

GO

SET QUOTED_IDENTIFIER ON

GO

CREATE TABLE [dbo].[ProductosFecha](

[IdProducto] [int] NULL,

[Nombre] [nvarchar](15) NULL,

[Color] [nvarchar](15) NULL,

[SafetyStockLevel] [smallint] NULL,

[ListPrice] [money] NULL,

[Size] [nvarchar](5) NULL,

[ProductLine] [nvarchar](2) NULL,

[SellStartDate] [datetime] NULL,

[SoloFecha] [date] NULL

) ON [PRIMARY]

GO

El paquete se ejecuta sin errores

ResultaColDevi2Desti

Entran primero las cortas, las 172 cortas y luego las que eran largas, truncadas a los 15 primeros caracteres.

TablaNombresCortos FichNombresCortos

Puede estar bien, si no necesitamos que entren en un orden determinado, entonces nos vale, no hay elementos bloqueantes, ocupa poco y no perdemos ningún registro. Misión cumplida.

¿Y si necesitamos un orden o tenemos una columna identity que se rellena al vuelo? Esto ya lo tenemos que solucionar de forma diferente, para lo que dedicaremos otro escrito.

En este caso, que ya tenemos todos los registros en el destino, no olvidemos conservar la muestra larga original para enviarla al suministrador. Hemos solucionado como hemos podido; pero por favor que nos mejore esos datos para no truncarlos…si es que se puede, claro 🙂

Hasta la próxima, que estaremos hablando de Multidifusión.