In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.

Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.

Hacer un update secuencial

SQL databases
Responder
jose.luis
Mensajes: 1633
Registrado: Vie Oct 14, 2005 10:56 pm

Hacer un update secuencial

Mensaje por jose.luis »

Hola,
Data una tabla con un campo numérico donde normalmente guardaremos un orden
correlativo. Algo así
Tabla: pruebas
cCodigo dFecha nContador
'00012' '01/09/2005' 1
'00013' '02/09/2005' 3
'00014' '01/09/2005' 4
'00015' '03/09/2005' 5
'00011' '04/09/2005' 6
'00010' '05/09/2005' 8
Quisiera saber si hay alguna manera de hacer un único update para conseguir
esto:
cCodigo dFecha nContador
'00012' '01/09/2005' 1
'00013' '02/09/2005' 2
'00014' '01/09/2005' 3
'00015' '03/09/2005' 4
'00011' '04/09/2005' 5
'00010' '05/09/2005' 6
Algo así:
UPDATE PRUEBAS SET nContador = nRow() //suponiendo que nRow() fuera una
función que devuelva un número consecutivo..
Saludos,
José Luis Capel
Rolando
Mensajes: 191
Registrado: Lun May 08, 2006 2:10 pm

Hacer un update secuencial

Mensaje por Rolando »

Hola:
¿ Porque no usas un autoincremental en nContador ?, o la función SQL
Max( nContador ) +1 en un disparador.
Saludos.
"José Luis Capel - Aicom" <jose.luis@iaicom.com> escribió en el mensaje
news:45fa8b27$[email=1@news.xailer.com...]1@news.xailer.com...[/email]
> Hola,
>
> Data una tabla con un campo numérico donde normalmente guardaremos un
> orden correlativo. Algo así
>
> Tabla: pruebas
>
> cCodigo dFecha nContador
> '00012' '01/09/2005' 1
> '00013' '02/09/2005' 3
> '00014' '01/09/2005' 4
> '00015' '03/09/2005' 5
> '00011' '04/09/2005' 6
> '00010' '05/09/2005' 8
>
> Quisiera saber si hay alguna manera de hacer un único update para
> conseguir esto:
>
> cCodigo dFecha nContador
> '00012' '01/09/2005' 1
> '00013' '02/09/2005' 2
> '00014' '01/09/2005' 3
> '00015' '03/09/2005' 4
> '00011' '04/09/2005' 5
> '00010' '05/09/2005' 6
>
> Algo así:
>
> UPDATE PRUEBAS SET nContador = nRow() //suponiendo que nRow() fuera una
> función que devuelva un número consecutivo..
>
> Saludos,
> José Luis Capel
>
>
jose.luis
Mensajes: 1633
Registrado: Vie Oct 14, 2005 10:56 pm

Hacer un update secuencial

Mensaje por jose.luis »

Rolando,
> ¿ Porque no usas un autoincremental en nContador ?, o la función
> SQL Max( nContador ) +1 en un disparador.
No puedo poner un autoincremental dado que el valor de ese campo no depende
del orden de creación. Es el usuario quien determina el orden.... y mi
aplicación quien tiene que reorganizar consecutivamente la lista.
Saludos,
José Luis Capel
Responder