Generar un Consecutivo

27/07/2004 - 01:07 por Miguel Jiron | Informe spam
Hola a todos !!!

Mi problema es que cada mes se le agregan a una tabla al
rededor de 400,000 registros en un solo proceso. Luego en
un campo necesito generar un numero consecutivo cuando
estos registros ya estan grabados en la tabla...

Ya hice un Procedimiento Almacenado que genera el
consecutivo con un Cursor, pero como se imaginaran, este
cursor se dilata excesivamente para generar y actualizar
todos los consecutivos en la tabla, ademas todo el mundo
recomienda tratar de no utilizar cursores porque
perjudican el rendimiento del servidor, y este es mi caso.

Como puedo generar un consecutivo sin utilizar un
cursor ??

Gracias...

Preguntas similare

Leer las respuestas

#6 Javier Loria
27/07/2004 - 05:46 | Informe spam
Hola:
Perdon la condicion del ON es en la Llave Primaria:
==ON Tabla.LlavePrimaria=I.Llave Primaria
== Saludos,


Javier Loria
Costa Rica
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda.
Javier Loria escribio:
Hola Miguel:
Los datos tienen alguna Llave Primaria Natural?
Si los tienes es posible hacerlo con una FUNCION IDENTITY (no con
la propiedad), y con una Tabla Temporal.
Seria mas o menos asi:
=> SELECT Identity(INT, 1,1) AS Id
, LlavePrimaria
INTO #Ids
FROM Tabla

UPDATE Tabla
SET NumeroConsecutivo=I.Id
FROM Tabla
JOIN #Ids AS I
ON Tabla.Id=I.Id

DROP TABLE #Ids
=> El mecanismo del COUNT(*) que seria otra alternativa seria
demasiado lento con 400,000 mil registros. Este me parece que debe
ser el mas rapido. Espero te sirva,


Javier Loria
Costa Rica
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda.


Miguel Jiron escribio:
Hola a todos !!!

Mi problema es que cada mes se le agregan a una tabla al
rededor de 400,000 registros en un solo proceso. Luego en
un campo necesito generar un numero consecutivo cuando
estos registros ya estan grabados en la tabla...

Ya hice un Procedimiento Almacenado que genera el
consecutivo con un Cursor, pero como se imaginaran, este
cursor se dilata excesivamente para generar y actualizar
todos los consecutivos en la tabla, ademas todo el mundo
recomienda tratar de no utilizar cursores porque
perjudican el rendimiento del servidor, y este es mi caso.

Como puedo generar un consecutivo sin utilizar un
cursor ??

Gracias...
Respuesta Responder a este mensaje
#7 Lázaro
27/07/2004 - 12:39 | Informe spam
Mira este artículo a ver si te da alguna pista:

http://www.microsoft.com/spanish/ms...art167.asp

Salu2

"Miguel Jiron" wrote in message
news:486d01c47365$5e55d0f0$
Hola a todos !!!

Mi problema es que cada mes se le agregan a una tabla al
rededor de 400,000 registros en un solo proceso. Luego en
un campo necesito generar un numero consecutivo cuando
estos registros ya estan grabados en la tabla...

Ya hice un Procedimiento Almacenado que genera el
consecutivo con un Cursor, pero como se imaginaran, este
cursor se dilata excesivamente para generar y actualizar
todos los consecutivos en la tabla, ademas todo el mundo
recomienda tratar de no utilizar cursores porque
perjudican el rendimiento del servidor, y este es mi caso.

Como puedo generar un consecutivo sin utilizar un
cursor ??

Gracias...
Respuesta Responder a este mensaje
#8 Miguel Jiron
27/07/2004 - 18:34 | Informe spam
Gracias a todos por sus comentarios... voy a revisar lo
que me estan sugiriendo.

Saludos
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida