• Domingo 22 de Diciembre de 2024, 09:58

Autor Tema:  Conocer El Siguiente Valor De Un Campo Identidad  (Leído 3786 veces)

lencho

  • Miembro de PLATA
  • *****
  • Mensajes: 1076
    • Ver Perfil
Conocer El Siguiente Valor De Un Campo Identidad
« en: Lunes 26 de Febrero de 2007, 17:14 »
0
Una pregunta, alguien sabe como se puede conocer cual sera el siguiente valor de una campo identidad ?


BYTE
______________________________________________________________________________________
"No estoy de acuerdo con lo que dices, pero defenderé con mi vida tu derecho a expresarlo"

ElNapster

  • Moderador
  • ******
  • Mensajes: 727
    • Ver Perfil
Re: Conocer El Siguiente Valor De Un Campo Identidad
« Respuesta #1 en: Lunes 26 de Febrero de 2007, 17:15 »
0
Código: Text
  1. Select max(campo)+1
  2. From Tabla
  3.  
:rolleyes:
Suerte ...  :comp:
"Somos lo que imaginamos ser"
-- --------------------------------------------------------------
-ElNapster
-Designer / Developer Software
-GuaTemALa



lencho

  • Miembro de PLATA
  • *****
  • Mensajes: 1076
    • Ver Perfil
Re: Conocer El Siguiente Valor De Un Campo Identidad
« Respuesta #2 en: Lunes 26 de Febrero de 2007, 17:19 »
0
no da.
lo que pasa es que si el campo id = 10 y luego elimino el ultimo oseal el id=10 entonces esa consulta me traeria 10  (por que ahora el iD mas alto es 9), pero en la realidad el id siguiente seria 11.



por ahi encontre esto:
Código: Text
  1. SCOPE_IDENTITY, IDENT_CURRENT y @@IDENTITY son funciones parecidas ya que devuelven valores insertados en columnas de identidad.
  2.  
  3. IDENT_CURRENT no está limitado por el ámbito y la sesión; se limita a una tabla especificada. IDENT_CURRENT devuelve el valor generado para una tabla específica en cualquier sesión y cualquier ámbito.
  4.  
  5. SCOPE_IDENTITY y @@IDENTITY devuelven los últimos valores de identidad generados en una tabla en la sesión actual. No obstante, SCOPE_IDENTITY sólo devuelve los valores insertados en el ámbito actual; @@IDENTITY no se limita a un ámbito específico.
  6.  

creo que me ayudaran, pero no se como utlizarlas.

BYTE.
______________________________________________________________________________________
"No estoy de acuerdo con lo que dices, pero defenderé con mi vida tu derecho a expresarlo"

lencho

  • Miembro de PLATA
  • *****
  • Mensajes: 1076
    • Ver Perfil
Re: Conocer El Siguiente Valor De Un Campo Identidad
« Respuesta #3 en: Lunes 26 de Febrero de 2007, 21:49 »
0
SCOPE_IDENTITY, IDENT_CURRENT y @@IDENTITY. creo que estas funciones son para SQL 2000, y yo estoy utilizando SQL Server 7

seguire buscando otras soluciones.

BYTE
______________________________________________________________________________________
"No estoy de acuerdo con lo que dices, pero defenderé con mi vida tu derecho a expresarlo"

ElNapster

  • Moderador
  • ******
  • Mensajes: 727
    • Ver Perfil
Re: Conocer El Siguiente Valor De Un Campo Identidad
« Respuesta #4 en: Lunes 26 de Febrero de 2007, 22:00 »
0
Código: Text
  1. Select Distinct @@IDENTITY +1
  2. From Tabla
  3.  
Te devuelve el ultimo valor +1 ....  :rolleyes:

Suerte  :comp:
"Somos lo que imaginamos ser"
-- --------------------------------------------------------------
-ElNapster
-Designer / Developer Software
-GuaTemALa



lencho

  • Miembro de PLATA
  • *****
  • Mensajes: 1076
    • Ver Perfil
Re: Conocer El Siguiente Valor De Un Campo Identidad
« Respuesta #5 en: Lunes 26 de Febrero de 2007, 22:10 »
0
Cita de: "elnapster"
Código: Text
  1. Select Distinct @@IDENTITY +1
  2. From Tabla
  3.  
Te devuelve el ultimo valor +1 ....  :rolleyes:

Suerte  :comp:
en realidad
Código: Text
  1.  
  2. Select Distinct @@IDENTITY
  3. From Entrada
  4.  
  5.  
por que cuando pongo
Código: Text
  1.  
  2. Select Distinct @@IDENTITY + 1
  3. From Entrada
  4.  
  5.  
me devuelve la misma cantidad de registros que hay

no se como esta realmente funcionando, pero me sirvio por un momento, por que cuando quise inicio el servicio y ejecuto esa funcion (@@identity) me devuelve NULL, pero cuando antes ejecuto algunas inserciones me funciona correctamente.
creo que aqui esta la explicacion:
Código: Text
  1. El @@identity es un comando que va por la conexión, o sea que cuando inicias el procedimiento, hasta que termina, solo usa una unica conexión con la DB, asi que el @@identity sera el último ID que hayas insertado desde esa conexión
  2.  

GRACIAS.

BYTE.
______________________________________________________________________________________
"No estoy de acuerdo con lo que dices, pero defenderé con mi vida tu derecho a expresarlo"

ElNapster

  • Moderador
  • ******
  • Mensajes: 727
    • Ver Perfil
Re: Conocer El Siguiente Valor De Un Campo Identidad
« Respuesta #6 en: Lunes 26 de Febrero de 2007, 22:15 »
0
Ok,  :smartass: , aunque te cuento que a mi se suma 1 al valor maximo  :blink:  ... pero bueno la cosa esque ya esta resuelto :beer:
Saludos...
 :comp:
"Somos lo que imaginamos ser"
-- --------------------------------------------------------------
-ElNapster
-Designer / Developer Software
-GuaTemALa



lencho

  • Miembro de PLATA
  • *****
  • Mensajes: 1076
    • Ver Perfil
Re: Conocer El Siguiente Valor De Un Campo Identidad
« Respuesta #7 en: Lunes 26 de Febrero de 2007, 22:28 »
0
que pena, la funcion que realmente necesito es IDENT_CURRENT, pero parece que no da en SQL Server 7.
creo tendre que actualizarme de una vez, para asi utilizar estas funciones y mucho mas.

GRACIAS
elnapster

BYTE.
______________________________________________________________________________________
"No estoy de acuerdo con lo que dices, pero defenderé con mi vida tu derecho a expresarlo"

ElNapster

  • Moderador
  • ******
  • Mensajes: 727
    • Ver Perfil
Re: Conocer El Siguiente Valor De Un Campo Identidad
« Respuesta #8 en: Lunes 26 de Febrero de 2007, 22:56 »
0
Si utilizas el IDENT_CURRENT
el ejemplo seria asi

Código: Text
  1. Select IDENT_CURRENT('tabla')
  2.  

 :comp:
"Somos lo que imaginamos ser"
-- --------------------------------------------------------------
-ElNapster
-Designer / Developer Software
-GuaTemALa



lencho

  • Miembro de PLATA
  • *****
  • Mensajes: 1076
    • Ver Perfil
Re: Conocer El Siguiente Valor De Un Campo Identidad
« Respuesta #9 en: Lunes 26 de Febrero de 2007, 23:01 »
0
Cita de: "elnapster"
Si utilizas el IDENT_CURRENT
el ejemplo seria asi

Código: Text
  1. Select IDENT_CURRENT('tabla')
  2.  

 :comp:
sip, gracias. Solo que esas funciones no dan en SQL Server 7.
esto me muestra cuando ejecuto esa funcion.
Código: Text
  1. Servidor: mensaje 195, nivel 15, estado 10, línea 1
  2. 'IDENT_CURRENT' no es un nombre de función reconocido.
  3.  

Gracias.

BYTE.
______________________________________________________________________________________
"No estoy de acuerdo con lo que dices, pero defenderé con mi vida tu derecho a expresarlo"

ElNapster

  • Moderador
  • ******
  • Mensajes: 727
    • Ver Perfil
Re: Conocer El Siguiente Valor De Un Campo Identidad
« Respuesta #10 en: Lunes 26 de Febrero de 2007, 23:09 »
0
Sql 7.0  :blink:  :blink:

Citar
tendre que actualizarme de una vez, para asi utilizar estas funciones y mucho mas.
jajaja pero parece que tiene que ser entre mas rapido mejor  :kicking:
 :whistling:  jaja bromas .... :devil:

 :comp:
"Somos lo que imaginamos ser"
-- --------------------------------------------------------------
-ElNapster
-Designer / Developer Software
-GuaTemALa



lencho

  • Miembro de PLATA
  • *****
  • Mensajes: 1076
    • Ver Perfil
Re: Conocer El Siguiente Valor De Un Campo Identidad
« Respuesta #11 en: Lunes 26 de Febrero de 2007, 23:17 »
0
Cita de: "elnapster"
Sql 7.0  :blink:  :blink:

Citar
tendre que actualizarme de una vez, para asi utilizar estas funciones y mucho mas.
jajaja pero parece que tiene que ser entre mas rapido mejor  :kicking:
 :whistling:  jaja bromas .... :devil:

 :comp:
pues si. espero hacerlo muy pronto.

GRACIAS.


BYTE.
______________________________________________________________________________________
"No estoy de acuerdo con lo que dices, pero defenderé con mi vida tu derecho a expresarlo"