Ayuda con un DTS

08/04/2005 - 19:25 por Guillermo | Informe spam
Tengo que hacer un DTS, que tomes datos de un archivo de texto y los meta en
una tabla.
El problema que tengo, es que muchos de los datos que voy a meter, ya éstán
en la tabla, por lo que en lugar de insertar, tengo que hacer un Update.
En resumen:
- leo el registro del archivo de texto
- verifico si existe dentro de la tabla
- si existe actualizo el registro, si no, lo inserto

Se puede hacer esto con un DTS?
Como?

Preguntas similare

Leer las respuestas

#1 Alejandro Mesa
08/04/2005 - 19:59 | Informe spam
Guillermo,

Si se puede hacer. Una forma seria importando los datos hacia una segunda
tabla, la cual usarias luego para actualizar la tabla en question. La otra
forma (creo que seria mas lento el proceso) seria usar "Data Driven Query
Task", ve los libros en linea para mas informacion sobre este tipo de tarea.


AMB

"Guillermo" wrote:

Tengo que hacer un DTS, que tomes datos de un archivo de texto y los meta en
una tabla.
El problema que tengo, es que muchos de los datos que voy a meter, ya éstán
en la tabla, por lo que en lugar de insertar, tengo que hacer un Update.
En resumen:
- leo el registro del archivo de texto
- verifico si existe dentro de la tabla
- si existe actualizo el registro, si no, lo inserto

Se puede hacer esto con un DTS?
Como?



Respuesta Responder a este mensaje
#2 Don Roque
08/04/2005 - 23:36 | Informe spam
Lo que dice Alejandro es 100% cierto. Con el Data Driven Query Task
podes hacer lo que estas necesitando hacer. Pero, esto tiene mucha peor
performance que el TASK que inserta sin consultar lo que hay.

Lo mejor que se me ocurre que podes hacer es lo siguiente:

1) crea una tabla que tenga exactamente la misma estructura que la
tabla donde tenes los datos
2) crea un EXECUTE TASK que se ejecute antes del COPY, que borre esa
tabla
3) ejecuta el COPY tal cual lo tenes, pero en lugar de apuntar a la
tabla que estas apuntando, que apunte a la tabla nueva.
4) crea un EXECUTE TASK que se ejecute despues del copy. El execute
deberia llamar a un Stored Procedure que haga un INSERT masivo de los
datos que estan en la tabla nueva, pero no en la tabla donde estas
queriendo guardar los datos. Luego hace un UPDATE masivo, para
actualizar los datos que estan en una tabla y en otra. Para terminar,
borra todos los datos que estan en la tabla nueva que creamos.


Se que esta es una solucion un poco mas trabajosa de conseguir, pero es
lo mas performante que se me ocurre.

Saludos
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida