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

[sql]insertar Nuevos Registro A Una Tabla Desde Otra

Estas en el tema de [sql]insertar Nuevos Registro A Una Tabla Desde Otra en el foro de SQL Server en Foros del Web. HOLA, NECESITO INSERTAR REGISTROS EN UNA TABLA (a) DESDE UNA TABLA(b) ... EN LA TABLA (a) YA TENGO DATOS Y NO QUIERON QUE ESTOS SEAN ...
  #1 (permalink)  
Antiguo 03/10/2005, 14:08
 
Fecha de Ingreso: enero-2005
Mensajes: 27
Antigüedad: 19 años, 3 meses
Puntos: 0
Pregunta [sql]insertar Nuevos Registro A Una Tabla Desde Otra

HOLA, NECESITO INSERTAR REGISTROS EN UNA TABLA (a) DESDE UNA TABLA(b) ...

EN LA TABLA (a) YA TENGO DATOS Y NO QUIERON QUE ESTOS SEAN REEMPLAZADOS POR LO DE LA TABLA(b) NI QUE ESTOS SE DUPLIQUEN .. LAS COLUMNAS PARA VERIFICAR QUE UN REGISTRO DE LA TABLA (B) NO SE ENCUENTRA EN LA TABLA(a) SON RUT Y COD_CURSO...

OJALA ALGUIEN ME ENTIENDA LO QUE QUISE PLANTEAR ..

PARECE QUE NO ME EXPLICO MUY BIEN

CUALQUIER AYUDA ES BIENVENIDA , YA QUE NO HE ENCONTRADO LA FORMA DE HACERLO ... LLEVO POCO USANDO EL SQL SERVER...

SALUDOS
  #2 (permalink)  
Antiguo 03/10/2005, 15:13
Avatar de Mithrandir
Colaborador
 
Fecha de Ingreso: abril-2003
Mensajes: 12.106
Antigüedad: 21 años
Puntos: 25
La verdad es que no entendí totalmente, pero para empezar veamos como mandas datos de una tabla a otra:

INSERT INTO unatabla
SELECT * FROM otratabla

Si el # u orden de campos no corresponde tienes que indicar los campos explícitamente:

INSERT INTO unatabla VALUES(a, b, c)
SELECT equiv_a, equiv_b. equiv_c FROM otratabla

PD. Utilizar mayúsculas es de mal gusto, en el cibermundo indica que estas gritando
__________________
"El hombre, en su orgullo, creó a Dios a su imagen y semejanza."
Friedrich Nietzsche
  #3 (permalink)  
Antiguo 03/10/2005, 16:02
 
Fecha de Ingreso: enero-2005
Mensajes: 27
Antigüedad: 19 años, 3 meses
Puntos: 0
Hola:
Claro, eso seria el dia 1 ... el dia 2 solo debo insertar los nuevos registros de la tabla origen sin pisar los datos insertados en dia 1 en la tabla destino...

en eso estoi pegado ...

  #4 (permalink)  
Antiguo 04/10/2005, 07:19
 
Fecha de Ingreso: enero-2005
Mensajes: 27
Antigüedad: 19 años, 3 meses
Puntos: 0
No se puede??? :(
  #5 (permalink)  
Antiguo 04/10/2005, 14:09
Avatar de Mithrandir
Colaborador
 
Fecha de Ingreso: abril-2003
Mensajes: 12.106
Antigüedad: 21 años
Puntos: 25
La manera quick'n dirty de hacerlo es mediante un subquery:

INSERT INTO unatabla
SELECT * FROM otratabla
WHERE otratabla.llave NOT IN (SELECT llave FROM unatabla)

Eso tiene sus consideraciones de rendimiento, pero seguro funciona.
__________________
"El hombre, en su orgullo, creó a Dios a su imagen y semejanza."
Friedrich Nietzsche
  #6 (permalink)  
Antiguo 04/10/2005, 15:37
 
Fecha de Ingreso: enero-2005
Mensajes: 27
Antigüedad: 19 años, 3 meses
Puntos: 0
hola :

El problema es que ese metodo solo me permite comparar por la llave .. y yo necesito hacer la compracion por dos campos ...

asi que junte los dos campos y me cree una llave y funciona bien ..

MUCHAS GRACIAS!
  #7 (permalink)  
Antiguo 05/10/2005, 11:49
Avatar de Mithrandir
Colaborador
 
Fecha de Ingreso: abril-2003
Mensajes: 12.106
Antigüedad: 21 años
Puntos: 25
Exacto, juntando los 2 campos para formar 1 solo campo pseudollave es la solución.

Pero te aclaro que seguramente obtengas mejores resultados (mejor rendimiento) usando JOINS, en concreto lo que te soluciona tu problema son los OUTER JOINS.
__________________
"El hombre, en su orgullo, creó a Dios a su imagen y semejanza."
Friedrich Nietzsche
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 03:45.