Actualización en una sentencia SQL

11/08/2003 - 13:26 por Carmen | Informe spam
Tengo una tabla de obras y contratos por obra . Para cada obra quiero
renumerar sus contrato comenzando por 1. ¿Hay alguna forma de hacer esto en
una sentencia SQL sin tener que usar un cursor?

Muchas gracias
 

Leer las respuestas

#1 Miguel Egea
11/08/2003 - 14:25 | Informe spam
Si tu clave de contrato es clustered por obra, puede funcionar bien, si no,
yo te recomendaría que lo pruebes con mucho cariño, ya que sql no garantiza
el orden en el que se ejecutará esta instrucción y depende del orden para
que funcione bien, sería algo así

declare @contrato int
Declare @obra int
set @obra=-1
set @contrato=0
update tabla set @contrato=case when @obra=obra then @contrato+1 else 0 end
,contrato=@contrato,@obra=obra

Espero que te sirva, ten en cuenta que está sin probar!!

Espero que te sirva.

Saludos
Miguel Egea
http://www.portalsql.com
Sql-Server MVP
"Carmen" escribió en el mensaje
news:e3$sxt$
Tengo una tabla de obras y contratos por obra . Para cada obra quiero
renumerar sus contrato comenzando por 1. ¿Hay alguna forma de hacer esto


en
una sentencia SQL sin tener que usar un cursor?

Muchas gracias


Preguntas similares