Correlativo en transact

28/08/2007 - 02:43 por Edgar_Torres | Informe spam
Hola quisiera modificar un correlativo en transact, es decir tengo

id
1
2
3
4
5
y lo quisiera cambiar a
1231
1232
1233
1234
1235

Ya probe realizarlo con un While pero no funciona, alguna idea,

gracias

Edgar

Preguntas similare

Leer las respuestas

#1 Luis Mata
28/08/2007 - 03:00 | Informe spam
el while si funciona
ejecuuta este pequeño script

create table prueba (id int)

insert into prueba values(1)

insert into prueba values(2)

insert into prueba values(3)

declare @vid int,@nuini int

set @nuini = 1230

declare tmptabla cursor for select * from prueba

open tmptabla

fetch next from tmptabla into @vid

while @@fetch_status = 00

begin

update prueba set id = @nuini + 1 where id = @vid

set @nuini = @nuini + 1

fetch next from tmptabla into @vid

end

deallocate tmptabla

select * from prueba


"Edgar_Torres" escribió en el mensaje
news:
Hola quisiera modificar un correlativo en transact, es decir tengo

id
1
2
3
4
5
y lo quisiera cambiar a
1231
1232
1233
1234
1235

Ya probe realizarlo con un While pero no funciona, alguna idea,

gracias

Edgar

Respuesta Responder a este mensaje
#2 Gustavo Larriera \(MVP\)
28/08/2007 - 03:37 | Informe spam
Por qué simplemente no le suma 1230 al correlativo?


Gustavo Larriera, Microsoft MVP
https://mvp.support.microsoft.com/p...o.Larriera
Este mensaje se proporciona tal como es, sin garantías de ninguna clase.

"Edgar_Torres" wrote in message
news:
Hola quisiera modificar un correlativo en transact, es decir tengo

id
1
2
3
4
5
y lo quisiera cambiar a
1231
1232
1233
1234
1235

Ya probe realizarlo con un While pero no funciona, alguna idea,

gracias

Edgar

Respuesta Responder a este mensaje
#3 Salvador Ramos
28/08/2007 - 09:21 | Informe spam
Hola,

Quería hacer una pequeña puntualización, pero considero que es importante,
sobre este ejemplo, ya que en ciertas ocasiones podría fallar, porque salvo
que especifiquemos la cláusula 'order by' en la instrucción select no se
garantiza el orden (aunque en muchísimas ocasiones nos salga ordenado).

Sólo cambiaría esta linea:
declare tmptabla cursor for select * from prueba


por:
declare tmptabla cursor for select * from prueba order by id

Un saludo
Salvador Ramos

www.helpdna.net (información sobre SQL Server y Microsoft .Net)
www.helpdna.net/acerca_de_salvador_ramos.htm


"Luis Mata" escribió en el mensaje
news:%
el while si funciona
ejecuuta este pequeño script

create table prueba (id int)

insert into prueba values(1)

insert into prueba values(2)

insert into prueba values(3)

declare @vid int,@nuini int

set @nuini = 1230

declare tmptabla cursor for select * from prueba

open tmptabla

fetch next from tmptabla into @vid

while @@fetch_status = 00

begin

update prueba set id = @nuini + 1 where id = @vid

set @nuini = @nuini + 1

fetch next from tmptabla into @vid

end

deallocate tmptabla

select * from prueba


"Edgar_Torres" escribió en el mensaje
news:
Hola quisiera modificar un correlativo en transact, es decir tengo

id
1
2
3
4
5
y lo quisiera cambiar a
1231
1232
1233
1234
1235

Ya probe realizarlo con un While pero no funciona, alguna idea,

gracias

Edgar





Respuesta Responder a este mensaje
#4 Miguel Egea
28/08/2007 - 13:52 | Informe spam
Como dice Gustavo es más sencillo simplemente sumar 1230

update prueba set id=id+1230

Lo que te puede fallar es si id es un autonumérico, si tienes integridad
referencial y ésta no se actualiza en cascada, etc etc.

si Edgar nos da alguna pista mas igual podemos ayudarle.

Saludos

"Luis Mata" wrote in message
news:%
el while si funciona
ejecuuta este pequeño script

create table prueba (id int)

insert into prueba values(1)

insert into prueba values(2)

insert into prueba values(3)

declare @vid int,@nuini int

set @nuini = 1230

declare tmptabla cursor for select * from prueba

open tmptabla

fetch next from tmptabla into @vid

while @@fetch_status = 00

begin

update prueba set id = @nuini + 1 where id = @vid

set @nuini = @nuini + 1

fetch next from tmptabla into @vid

end

deallocate tmptabla

select * from prueba


"Edgar_Torres" escribió en el mensaje
news:
Hola quisiera modificar un correlativo en transact, es decir tengo

id
1
2
3
4
5
y lo quisiera cambiar a
1231
1232
1233
1234
1235

Ya probe realizarlo con un While pero no funciona, alguna idea,

gracias

Edgar





Respuesta Responder a este mensaje
#5 Luis Mata
28/08/2007 - 15:34 | Informe spam
eso faltaba bien ahi

"Salvador Ramos" escribió en el
mensaje news:%230kW$
Hola,

Quería hacer una pequeña puntualización, pero considero que es importante,
sobre este ejemplo, ya que en ciertas ocasiones podría fallar, porque
salvo que especifiquemos la cláusula 'order by' en la instrucción select
no se garantiza el orden (aunque en muchísimas ocasiones nos salga
ordenado).

Sólo cambiaría esta linea:
declare tmptabla cursor for select * from prueba


por:
declare tmptabla cursor for select * from prueba order by id

Un saludo
Salvador Ramos

www.helpdna.net (información sobre SQL Server y Microsoft .Net)
www.helpdna.net/acerca_de_salvador_ramos.htm


"Luis Mata" escribió en el mensaje
news:%
el while si funciona
ejecuuta este pequeño script

create table prueba (id int)

insert into prueba values(1)

insert into prueba values(2)

insert into prueba values(3)

declare @vid int,@nuini int

set @nuini = 1230

declare tmptabla cursor for select * from prueba

open tmptabla

fetch next from tmptabla into @vid

while @@fetch_status = 00

begin

update prueba set id = @nuini + 1 where id = @vid

set @nuini = @nuini + 1

fetch next from tmptabla into @vid

end

deallocate tmptabla

select * from prueba


"Edgar_Torres" escribió en el mensaje
news:
Hola quisiera modificar un correlativo en transact, es decir tengo

id
1
2
3
4
5
y lo quisiera cambiar a
1231
1232
1233
1234
1235

Ya probe realizarlo con un While pero no funciona, alguna idea,

gracias

Edgar









Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida