dts que sincronizen

06/01/2006 - 15:56 por hongo32es | Informe spam
hola a todos, pues recurriendo una vez mas a uds, ya que me han ayudado
mucho.

resulta que tengo que realizar unos dts que inserten datos en la base
de datos destino pero si el dato ya existe debe actualizarse. pero no
se como pasar datos para actualizarse en caso que ya exista gracias.

Preguntas similare

Leer las respuestas

#1 qwalgrande
07/01/2006 - 18:41 | Informe spam
Hola.

Para hacer este tipo de cosas suelo emplear un paso del DTS por operación,
en tu caso tienes 2, insert y update. Si tuvieras que eliminar registros en
destino, habría que incluir un paso más para ello.

Si la base de datos de origen y de destino están en distinto servidor, hay
un paso previo que es volcar a la base de datos de destino todos los
registros a actualizar, y una vez que tengamos todos los datos en el mismo
servidor, podemos atacar los pasos de inserción y de actualización. Trabajar
con servidores vinculados no suele ofrecer un rendimiento muy bueno, así que
mejor tenerlo primero todo en el mismo servidor. Puedes emplear una tabla
temporal global (con dos ##) o una tabla normal.

Es sencillo. Para el insert, una sentencia insert..select, con este aspecto
más o menos:

insert TablaDestino
select O.*
from TablaOrigen O left join TablaDestino D on O.ClavePrimaria =
D.ClavePrimaria
where O.CampoFiltroDeActualizacion = 'Valor' and D.ClavePrimaria is null

Lo que he llamado "CampoFiltroDeActualizacion" suele ser los dato desde una
fecha o cualquier otro tipo de filtro. Para el update, muy parecido:

update D
set Campo1= O.Campo1, Campo2 = O.Campo2,...
from TablaOrigen O left join TablaDestino D on O.ClavePrimaria =
D.ClavePrimaria
where O.CampoFiltroDeActualizacion = 'Valor'

Espero que te sirva como ayuda para adaptarla a tu problema.

Alberto López Grande (qwalgrande)


escribió en el mensaje
news:
hola a todos, pues recurriendo una vez mas a uds, ya que me han ayudado
mucho.

resulta que tengo que realizar unos dts que inserten datos en la base
de datos destino pero si el dato ya existe debe actualizarse. pero no
se como pasar datos para actualizarse en caso que ya exista gracias.

Respuesta Responder a este mensaje
#2 hongo32es
13/01/2006 - 16:12 | Informe spam
Hola, gracias por sus consejos, he estado evaluando el data driven
query task y es perfecto para lo que necesito, solo tiene un
inconveniente, que no funcionan los lookups, ya instale el service pack
4 y nada arroja un error de que no ahi espacio de almacenamiento
disponible, alguien sabe otra forma de realizar algo parecido a un
lookup sera talvez con los activex que retornan rowsets... o algo
asi... es que no los se utilizar
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida