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

UPDATE usando c1=max(c1)+1 w' c1=null

Estas en el tema de UPDATE usando c1=max(c1)+1 w' c1=null en el foro de SQL Server en Foros del Web. Buenos días. Deje esta consulta hace tiempo, pero no consegui ninguna ayuda útil... Seguramente esta vez podre conseguir la solución..tengo la tabla datos_laborales con el ...
  #1 (permalink)  
Antiguo 14/05/2007, 15:25
Avatar de vrenzo  
Fecha de Ingreso: febrero-2007
Mensajes: 289
Antigüedad: 17 años, 3 meses
Puntos: 15
Exclamación UPDATE usando c1=max(c1)+1 w' c1=null

Buenos días.

Deje esta consulta hace tiempo, pero no consegui ninguna ayuda útil...

Seguramente esta vez podre conseguir la solución..tengo la tabla datos_laborales con el campo linea, lo que necesito es hacer un update al campo linea computando en valor maximo que pueda tener linea en cualquier otro registro y continuar la secuencia es decir linea= 56,57,58,59,60 segun sea el caso... este problema lo tengo porque muchos registro s se actualizaron por migración y no se coloco el valor linea que lo genera la aplicación en cuestion...bueno trato de plantearlo de esta manera.. pero

UPDATE DATOS_LABORALES
set LINEA=max(LINEA)+1
WHERE isNull(LINEA)


da el siguiente error...

Servidor: mensaje 157, nivel 15, estado 1, línea 2
No puede aparecer un agregado en la lista establecida en una instrucción UPDATE.


O en todo caso un procedimiento que haga un update al campo LINEA que este nulo poniendole el valor maximo siguiente...

bueno si alguien puede darme una ayuda .. gracias...

Última edición por vrenzo; 14/05/2007 a las 15:46
  #2 (permalink)  
Antiguo 15/05/2007, 12:11
Avatar de Mithrandir
Colaborador
 
Fecha de Ingreso: abril-2003
Mensajes: 12.106
Antigüedad: 21 años
Puntos: 25
Re: UPDATE usando c1=max(c1)+1 w' c1=null

¿Reiniciar la secuencia desde cero te sirve? Eso sería tan simple como crear un campo de tipo identity.

Si no permite la creación directa del campo entonces crea una tabla temporal y mueve los datos para allá. Regresalos ordenandolos por el valor actual del linea, eso hará que el orden original se mantenga (aunque el de línea se perderá).
__________________
"El hombre, en su orgullo, creó a Dios a su imagen y semejanza."
Friedrich Nietzsche
  #3 (permalink)  
Antiguo 15/05/2007, 15:40
Avatar de vrenzo  
Fecha de Ingreso: febrero-2007
Mensajes: 289
Antigüedad: 17 años, 3 meses
Puntos: 15
Re: UPDATE usando c1=max(c1)+1 w' c1=null

Gracias por tu consejo.

Mi solucion rápida fue exportar la data a una tabla en excel y generar los valores de linea. truncando la tabla y cargandola nuevamente.

Se que no es lo optimo ni lo correcto.. pero bueno me resulto...

De todas formas en el momento que encuentra solución a este detalle lo planteare en el foro. Porque se que se presentara algun problema similar otro día.

Saludos.
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 13:38.