Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

SSIS-Actualizar tabla de base de datos desde un archivo de Excel.

848 views
Skip to first unread message

kojikabutosv

unread,
Jun 12, 2009, 10:51:50 PM6/12/09
to
Hola, buenas tardes, estoy aprendiendo a utilizar SSIS y estoy hecho
"bola" todo este d�a con un problema para actualizar una tabla desde un
archivo de Excel.

He creado el paquete de la siguiente manera:

1- El excel source
2- He creado un Data Conversion puesto que me daba error al quere enviar
los registros a la tabla
3- Luego he hecho un Lookup para buscar los registro (esto no s� si es
necesario)

Luego de esto no s� que tarea agregar en el data Flow para decirle que
me actualice (no que me inserte), los campos que tengo en el archivo de
excel y que coinciden en el archivo de excel, buscando en internet le�a
que hac�an referencia a la tarea "OLE DB Command", pero no encuentro
como darle la instrucci�n del UPDATE.

Algo as� como : Update empleado set empleado.puesto=campoEnexcel.puesto
where empleado.empleado = campoEnexcel.empleado

gracias por su ayuda y su tiempo.

Maxi

unread,
Jun 13, 2009, 10:51:02 AM6/13/09
to
Hola, le recomiendo que haga dos cosas

1) Primero el tutorial de SSIS que viene con SQL server cuando baja los
libros on line
2) Siendo novato incie el proyecto en modo wizard

--

---------------------------------------------------------------------
Maxi Accotto
Microsoft MVP en SQL Server
Consultor en SQL Server
http://blog.maxiaccotto.com
---------------------------------------------------------------------


"kojikabutosv" <kojika...@gmail.com> escribi� en el mensaje de
noticias:#Uw0rH96...@TK2MSFTNGP05.phx.gbl...

Alejandro Mesa

unread,
Jun 13, 2009, 5:47:01 PM6/13/09
to
Como comento Maxi, si eres nuevo con el uso de SSIS, entonces te vendria bien
los tutoriales y algun buen libro sobre el tema.

Si eres ducho con T-SQL, una forma sencilla seria creando una tabla
permanente en la base de datos. Tu paquete tendria que eliminar todos los
registros de esta tabla (truncate table empleado_stage), copiar los registros
desde el archivo excel hacia esta tabla y luego una tarea sql que envie la
sentencia t-sql que actualiza tu tabla basada en las filas existentes en la
tabla que usas para almacenar la data desde excel. Algo asi como:

update empleado
set puesto = (
select s.puesto
from empleado_stage as s
where s.empleadoid = empleado.empleadoid
)
where exists (
select *
from empleado_stage as s
where s.empleadoid = empleado.empleadoid
);

Ahora, si no deseas crear la tabla para almacenar la data de el archivo
excel, entonces tendrias que poner esa data en un recordset y hacer un bucle
donde por cada fila envies una sentencia parametrizada hacia la base de
datos. Como vez es mas compleja esta opcion, pero muy practica cuando no
tenemos permiso en la db para crear una nueva tabla y ademas cuando el # de
filas a actualizar no son demasiadas.

Si el # de filas es poco, hasta la tarea "slowly changing dimension" te
puede servir. Lo malo es que debes estar familiarizado con estos conceptos
antes de navegar por el wizard.


AMB


"kojikabutosv" wrote:

> Hola, buenas tardes, estoy aprendiendo a utilizar SSIS y estoy hecho

> "bola" todo este día con un problema para actualizar una tabla desde un

> archivo de Excel.
>
> He creado el paquete de la siguiente manera:
>
> 1- El excel source
> 2- He creado un Data Conversion puesto que me daba error al quere enviar
> los registros a la tabla

> 3- Luego he hecho un Lookup para buscar los registro (esto no sé si es
> necesario)
>
> Luego de esto no sé que tarea agregar en el data Flow para decirle que

> me actualice (no que me inserte), los campos que tengo en el archivo de

> excel y que coinciden en el archivo de excel, buscando en internet leía
> que hacían referencia a la tarea "OLE DB Command", pero no encuentro
> como darle la instrucción del UPDATE.
>
> Algo así como : Update empleado set empleado.puesto=campoEnexcel.puesto

kojikabutosv

unread,
Jun 16, 2009, 11:38:16 AM6/16/09
to
Gracias Alejandro y Maxi por su tiempo, soy muy nuevo en el tema de
SSIS, y al final lo que hice fué mas o menos lo que sugería Alejandro,
al final tuve que crear una tabla temporal para pasar todo desde Excel a
la nueva tabla temporal y luego hice la actualización con T-SQL.

Ambos tienen razón necesito leer más documentación respecto a esto.

Gracias nuevamente por su tiempo.

EXITOS!!!!

Alejandro Mesa escribió:

0 new messages