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

update de una tabla a otra

Estas en el tema de update de una tabla a otra en el foro de SQL Server en Foros del Web. Hola gente, tengo un problemita, necesito actualizar los datos de un campo de una tabla, con los datos de otro campo de otra tabla. intenté ...
  #1 (permalink)  
Antiguo 18/11/2005, 07:55
Avatar de moron  
Fecha de Ingreso: mayo-2004
Mensajes: 972
Antigüedad: 20 años, 6 meses
Puntos: 2
update de una tabla a otra

Hola gente, tengo un problemita, necesito actualizar los datos de un campo de una tabla, con los datos de otro campo de otra tabla.

intenté esto, pero no funcona:

update tabla1 set descripcion = tabla2.descripcion
where tabla1.id = tabla2.id


saludos
  #2 (permalink)  
Antiguo 18/11/2005, 08:01
Avatar de Developer9
(Desactivado)
 
Fecha de Ingreso: abril-2005
Ubicación: Mi Ecuador del alma
Mensajes: 4.196
Antigüedad: 19 años, 7 meses
Puntos: 47
Lo que necesitas es un subquery, meter un select dentro del update. El select será de la tabla 2. Aunque para ayudarte mejor escribe los campos de las tablas en cuestion
  #3 (permalink)  
Antiguo 18/11/2005, 08:06
Avatar de moron  
Fecha de Ingreso: mayo-2004
Mensajes: 972
Antigüedad: 20 años, 6 meses
Puntos: 2
Hola, gracias por la pronta respuesta.

tengo dos tablas identicas en cuanto a estructura, y quiero actualizar la columna tabla1.descripcion con la columna de tabla2.descricion para todos los registros.
Los id coinciden en ambas tablas, es decir, para el registro 1 de tabla1 es el mismo en tabla2 pero el campo descripcion es diferente en cuanto a contenido.

saludos
  #4 (permalink)  
Antiguo 18/11/2005, 08:10
Avatar de Developer9
(Desactivado)
 
Fecha de Ingreso: abril-2005
Ubicación: Mi Ecuador del alma
Mensajes: 4.196
Antigüedad: 19 años, 7 meses
Puntos: 47
UPDATE tabla1
SET descripcion=(SELECT descripcion FROM tabla2 WHERE id=x)
FROM id=x

la variable x es el id que debe tener el mismo valor en los dos casos
  #5 (permalink)  
Antiguo 18/11/2005, 08:13
Avatar de moron  
Fecha de Ingreso: mayo-2004
Mensajes: 972
Antigüedad: 20 años, 6 meses
Puntos: 2
gracias, pero como hago para que asuma en la variable x cada valor de todos los registros?, lo tengo que hacer con un cursor o hay alguna forma de hacerlo a consulta pelada nomas?
  #6 (permalink)  
Antiguo 18/11/2005, 08:18
Avatar de Developer9
(Desactivado)
 
Fecha de Ingreso: abril-2005
Ubicación: Mi Ecuador del alma
Mensajes: 4.196
Antigüedad: 19 años, 7 meses
Puntos: 47
Ah justo eso estaba pensando... esa si tienes que ingeniartelas... puedes hacer en un procedure un cursor, no se mucho de eso, alguna vez hice uno pero recuerdo que servían para recorrer los resultados obtenidos en un select. Bueno tendrías que hacer un select de todos los ids para luego hacer el update registro por registro con los ids obtenidos en el select.
  #7 (permalink)  
Antiguo 18/11/2005, 10:04
Avatar de moron  
Fecha de Ingreso: mayo-2004
Mensajes: 972
Antigüedad: 20 años, 6 meses
Puntos: 2
sabes que termine haciendo, un join de la tabla 1 con la tabla 2.descripcion emparejado por id, todo eso dentro de un select into y listo.

gracias igual por la buena onda developer
  #8 (permalink)  
Antiguo 18/11/2005, 15:08
Avatar de Mithrandir
Colaborador
 
Fecha de Ingreso: abril-2003
Mensajes: 12.106
Antigüedad: 21 años, 7 meses
Puntos: 25
Esto me funciona a mi el 100% de las veces:
Código:
UPDATE t1
SET t1.campo = t2.campo
FROM tabla1 t1
	INNER JOIN tabla2 t2
		ON t1.llave = t2.llave
__________________
"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 22:15.