Ver Mensaje Individual
  #4 (permalink)  
Antiguo 22/11/2011, 19:37
Avatar de matanga
matanga
 
Fecha de Ingreso: octubre-2007
Ubicación: España
Mensajes: 1.091
Antigüedad: 16 años, 6 meses
Puntos: 85
Respuesta: dts en sql server 2000

El DTS te permite utilizar una consulta SQL para definir el conjunto de datos a importar/exportar, en tu caso, si las tablas de origen y destino tienen una forma única y equivalente de identificar cada registro (por ejemplo una primary key), lo que puedes hacer es:

Código:
--consulta para pasar los registros nuevos
insert into tabla_destino
select * from tabla_origen
where tabla_origen.id not in (select id from tabla_destino);

--consulta para actualizar los registros existentes
update tabla_destino
set 
 tabla_destino.campo1 = tabla_origen.campo1,
 tabla_destino.campo2 = tabla_origen.campo2 
 --y demás campos
from tabla_destino
 join tabla_origen on tabla_destino.id = tabla_origen.id;
Dependiendo del origen de datos, puede ser posible que el DTS no pueda resolver el join entre las dos tablas, si esto pasa, puedes agregar un paso previo que cree una tabla temporal para almacenar los datos de tabla_origen y utilizarla en el join.

Ten en mente que esto puede ser un proceso lento, además funciona solo si se accede a la tabla_destino con operaciones de lectura (select), ya que cualquier cambio que se haga se perderá por la sentencia de update en el DTS.

Saludos