Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Sobre identity

Estas en el tema de Sobre identity en el foro de SQL Server en Foros del Web. Estaba indagando como capturar el ultimo valor insertado en un campo identy y resulta que por ejemplo: tengo 6 filas en una tabla, al borrar ...
  #1 (permalink)  
Antiguo 01/02/2008, 09:41
 
Fecha de Ingreso: septiembre-2007
Mensajes: 44
Antigüedad: 16 años, 8 meses
Puntos: 0
Sobre identity

Estaba indagando como capturar el ultimo valor insertado en un campo identy y resulta que por ejemplo:

tengo 6 filas en una tabla, al borrar alguna(s) y hacer una consulta select para capturar el ultimo id autoincrementable me devuelve si me quedaron 2 filas nada mas me devuelve 2 filas con el valor NULL.

lo probe en el analizador de consultas :

"select @@identity from semana" --------> NULL
NULL

select @@identity -------------> NULL

que puede ser esto???????
  #2 (permalink)  
Antiguo 01/02/2008, 10:56
 
Fecha de Ingreso: noviembre-2006
Ubicación: México
Mensajes: 866
Antigüedad: 17 años, 6 meses
Puntos: 8
Re: Sobre identity

Que tal JoeH.

La variable @@identity te devuelve el último número usado, pero sólo se puede usar despúes de un insert a una tabla que tenga un campo de ese tipo(Identity). Por ejemplo:


Código:
InSert into myTable (campoX, CampoY) Values (1,11)
SET @varId = @@identity
 
De otra manera siempre devolverá NULL.

Saludos!
  #3 (permalink)  
Antiguo 01/02/2008, 13:50
 
Fecha de Ingreso: septiembre-2007
Mensajes: 44
Antigüedad: 16 años, 8 meses
Puntos: 0
Re: Sobre identity

gracias de antemano he seguido indagando y encontre esta forma que al parecer no importa lo anterior explicado

Select IDENT_CURRENT('table')

al parecer no tiene en cuenta que sea despues de un insert puesto probe reiniciando el servivio de sql server y volvi a ejecutar esta consulta y echo me devolvio el id que queria.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:03.