Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

dts en sql server 2000

Estas en el tema de dts en sql server 2000 en el foro de SQL Server en Foros del Web. hola a todos espero de vuestra ayuda tengo instalado sql server 2000 y otra base de datos .DBF cree un paquete en servicio de trnsformacion ...
  #1 (permalink)  
Antiguo 28/10/2011, 17:27
 
Fecha de Ingreso: junio-2010
Mensajes: 132
Antigüedad: 13 años, 9 meses
Puntos: 2
dts en sql server 2000

hola a todos espero de vuestra ayuda tengo instalado sql server 2000
y otra base de datos .DBF cree un paquete en servicio de trnsformacion de datos en paquetes locales en donde se conecta a la base de datos .DBF y me traiga un tabla especifica y la inserte en el sql server 2000 cuando genero la conexion me da la opcion de generar una query li di la opcion que me traiga datos segun una condicion hasta hay todo ok
problema: que cuando se ejecuta el paquete despues de 1 hora me trae los datos bien pero no los actualiza solo me copia de nuevo todo
ejemplo: si la primera me inserto 30 registro en la segunda insercion me copia 40 registro y quedom con un total de 70 registros en donde 30 se repiten y el resto son nuevos como puedo hacer para que me traiga solo los registros nuevo y que los actualize???????????
  #2 (permalink)  
Antiguo 30/10/2011, 20:16
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: dts en sql server 2000

Si no son muchos datos, podrias limpiar la tabla destino y traer nuevamente los datos, si es muy grande tu tabla, necesitas hacer una comparacion entre los que ya insertaste y los que contiene la tabla fuente.
__________________
MCTS Isaias Islas
  #3 (permalink)  
Antiguo 22/11/2011, 05:16
 
Fecha de Ingreso: junio-2010
Mensajes: 132
Antigüedad: 13 años, 9 meses
Puntos: 2
Respuesta: dts en sql server 2000

pelo que pasa es que no se como se hacer la consulta que solo inserte los datos que no estan y los otros que los actualize me pdorias ayudar
  #4 (permalink)  
Antiguo 22/11/2011, 19:37
Avatar de matanga  
Fecha de Ingreso: octubre-2007
Ubicación: España
Mensajes: 1.091
Antigüedad: 16 años, 5 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

Etiquetas: 2000, dts, registros, server, sql, tabla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:16.