• Viernes 15 de Noviembre de 2024, 16:45

Autor Tema:  devolver el valor de una secuencia  (Leído 3743 veces)

lugarda

  • Miembro activo
  • **
  • Mensajes: 52
  • Nacionalidad: co
    • Ver Perfil
devolver el valor de una secuencia
« en: Jueves 13 de Enero de 2011, 16:00 »
0
Hola a todos, estuve buscando la forma de recuperar el valor de la secuencia de una tabla (la cual uso como llave) , inmediatamente despues que ejecuto la sentencia INSERT.

Se me ocurrió hacerlo con un SELECT MAX(ID) FROM TABLA INTO :ULTIMO, pero me parece algo ineficiente. Si alguien tiene una forma mas efectiva para poder recuperar el ID (que es la secuencia de la tabla) , despues de hacer el insert, les agradezco mucho que me cuenten, seria de gran ayuda.

Buen dia.

Monica.

Thanatos-chan

  • Miembro MUY activo
  • ***
  • Mensajes: 136
  • Nacionalidad: do
    • Ver Perfil
Re: devolver el valor de una secuencia
« Respuesta #1 en: Viernes 14 de Enero de 2011, 14:49 »
0
si es una secuencia propiamente creada puedes usar:

Código: SQL
  1.  
  2. SELECT NOMBRESECUENCIA.CURRVAL FROM DUAL
  3.  
  4.  

sino, es como dices buscar el numero mas alto.
Que es un genio???? yo superare a un genio con trabajo duro, y eso es todo.

aaiello

  • Nuevo Miembro
  • *
  • Mensajes: 11
  • Nacionalidad: 00
    • Ver Perfil
Re:devolver el valor de una secuencia
« Respuesta #2 en: Jueves 18 de Agosto de 2011, 18:19 »
0
como dice la respuesta anterior la forma correcta es con currvar, pero lo de tomar el max puede o no ser ineficiente. Si tenes creado un indice cluster sobre ese campo entonces la performance será la misma en ambos casos, de lo contrario ahí podría verse afectada.
-
Lic. Andrés M. Aiello
DBA MSSQL - Oracle
http://aiellodba.blogspot.com/