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

Actualizar una tabla con otra

Estas en el tema de Actualizar una tabla con otra en el foro de SQL Server en Foros del Web. En principio Hola a todos, soy nuevo en el foro, y en Sql Quisiera pediros ayuda en un tema En SQL 2005 Tengo dos tablas ...
  #1 (permalink)  
Antiguo 08/04/2009, 02:40
 
Fecha de Ingreso: abril-2009
Mensajes: 4
Antigüedad: 15 años
Puntos: 0
Actualizar una tabla con otra

En principio Hola a todos, soy nuevo en el foro, y en Sql
Quisiera pediros ayuda en un tema
En SQL 2005
Tengo dos tablas iguales y lo que quiero es actualizar una con los registros de la otra, sin eliminar los que ya tengo en esta, es decir:
Si el registro existe que actualize los campos si han sido modificados, si el registro no existe que cree el registro y sus campos.
No es necesario borrar los registro de la segunda tabla si no estan en la primera.

Agradezco de antemano vuestra ayuda, un saludo
  #2 (permalink)  
Antiguo 08/04/2009, 06:12
Avatar de Andres95
Colaborador
 
Fecha de Ingreso: diciembre-2004
Mensajes: 1.802
Antigüedad: 19 años, 4 meses
Puntos: 38
Respuesta: Actualizar una tabla con otra

Tienes que utilizar dos sentencias, un update (para los que ya existen) y un insert (para los faltantes), como no agregas la estructura de tus tablas ni campos llave, seria algo mas o menos como esto:

Código:
UPDATE TablaDestino
SET     D.CamposAActualizar = F.CamposFuente
FROM   TablaDestino D
INNER JOIN  TablaFuente F
ON  D.CamposLlave = F.CamposLlave

INSERT INTO TablaDestino (CamposAInsertar)       
SELECT  CamposFuente
FROM     TablaFuente F
LEFT OUTER JOIN 
             TablaDestino D
ON  D.CamposLlave = F.CamposLlave
WHERE  D.CampoLlave is null
Saludos!
__________________
La sencillez y naturalidad son el supremo y último fin de la cultura...
--
MCTS : SQL Server 2008, .NET Framework 3.5, ASP.NET Applications.
  #3 (permalink)  
Antiguo 14/04/2009, 02:48
 
Fecha de Ingreso: abril-2009
Mensajes: 4
Antigüedad: 15 años
Puntos: 0
Respuesta: Actualizar una tabla con otra

En principio gracias por todo
puedo poner las dos sentencias en una sola consulta?
Como puedo hacerlo para que lo haga automaticamente a una hora?
  #4 (permalink)  
Antiguo 14/04/2009, 07:02
Avatar de Andres95
Colaborador
 
Fecha de Ingreso: diciembre-2004
Mensajes: 1.802
Antigüedad: 19 años, 4 meses
Puntos: 38
Respuesta: Actualizar una tabla con otra

no, no puedes... tienen que ser dos sentencias (en sql 2008 ya tenemos disponible la sentencia Merge pero no en 2005), aunque si puedes generar un stored procedure con ambas sentencias y generar un JOB (trabajo de SQL) para agregarle un schedule y correrlo en los dias y horas que desees...

Saludos!
__________________
La sencillez y naturalidad son el supremo y último fin de la cultura...
--
MCTS : SQL Server 2008, .NET Framework 3.5, ASP.NET Applications.
  #5 (permalink)  
Antiguo 14/04/2009, 11:22
 
Fecha de Ingreso: abril-2009
Mensajes: 4
Antigüedad: 15 años
Puntos: 0
Respuesta: Actualizar una tabla con otra

gracias por todo.
voy a ver si me entero como se hace una stored procedure.
aunque si sabes de un manual te agradezco que me informes.
  #6 (permalink)  
Antiguo 14/04/2009, 14:28
Avatar de Andres95
Colaborador
 
Fecha de Ingreso: diciembre-2004
Mensajes: 1.802
Antigüedad: 19 años, 4 meses
Puntos: 38
Respuesta: Actualizar una tabla con otra

la ayuda que viene incluia con SQL Server te sera de mucha utilidad....

para mi lo fue..

Saludos!
__________________
La sencillez y naturalidad son el supremo y último fin de la cultura...
--
MCTS : SQL Server 2008, .NET Framework 3.5, ASP.NET Applications.
  #7 (permalink)  
Antiguo 16/04/2009, 02:01
 
Fecha de Ingreso: abril-2009
Mensajes: 4
Antigüedad: 15 años
Puntos: 0
Respuesta: Actualizar una tabla con otra

Gracias de nuevo Andres95
Puedo crear un JOB que tenga como tareas:
1 Insert
2 update
Es correcto o hay una forma mejor de hacerlo
  #8 (permalink)  
Antiguo 16/04/2009, 06:38
Avatar de Andres95
Colaborador
 
Fecha de Ingreso: diciembre-2004
Mensajes: 1.802
Antigüedad: 19 años, 4 meses
Puntos: 38
Respuesta: Actualizar una tabla con otra

asi es...

al crear el job, agregas el codigo TSQL que desees ejecutar...

lo mejor seria tenerlo en un stored procedure...

Saludos!
__________________
La sencillez y naturalidad son el supremo y último fin de la cultura...
--
MCTS : SQL Server 2008, .NET Framework 3.5, ASP.NET Applications.
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 11:27.