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

Actualizar datos de forma masiva

Estas en el tema de Actualizar datos de forma masiva en el foro de SQL Server en Foros del Web. Hola, Necesito actualizar datos de forma masiva y no se muy bien como empezar. La idea es para una base de datos de alumnos de ...
  #1 (permalink)  
Antiguo 22/06/2010, 15:40
 
Fecha de Ingreso: enero-2006
Ubicación: Barcelona, España
Mensajes: 126
Antigüedad: 18 años, 3 meses
Puntos: 1
Actualizar datos de forma masiva

Hola,

Necesito actualizar datos de forma masiva y no se muy bien como empezar. La idea es para una base de datos de alumnos de una universidad y ahora que se termina el curso y de cara al año que viene, debo modificar los datos de una tabla que se llama:

jos_community_fields_values

En esta tabla hay muchos registros y de estos registros debo encontrar todos cuyo campo field_id es igual a 15 y modificar a cada uno su campo value por el valor del año siguiente:

Primero-->Segundo
Segundo-->Tercero
Tercero-->Ex- alumno

Para hacer esto pienso que primero debo empezar por modificar los del ultimo curso para no montar los de cursos contiguos.


He visto que deberia utilizar un código como este, pero no se muy bien que modificaciones debo hacer:

Código:
UPDATE traducciones 
SET 
  nombreTraduccion = 'Traduccion de Perro', 
  traduccion = 'Dog'
WHERE 
  idIdioma = 2 
  AND idTraduccion = 25
Alguien puede hecharme una mano?

Muchas gracias!
  #2 (permalink)  
Antiguo 22/06/2010, 16:38
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: Actualizar datos de forma masiva

Debes hacerlo mediante un CASE

UPDATE jos_community_fields_values
SET value = CASE WHEN value = 'Primero' THEN 'Segundo'
WHEN value = 'Segundo' THEN 'Tercero'
ELSE 'Ex-alumno' END
WHERE field_id = 15

Ahora bien, si estamos hablando de muchos registros (MILLONES), entonces deberias buscar la forma de hacerlo mediante un WHILE y "marcando" (colocar un flag o bandera) de aquellos que ya fueron ACTUALIZADOS.

Espero haberme explicado.

Etiquetas: masiva, formulario
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 01:43.