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.
 

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.

Preguntas similares