Ver Mensaje Individual
  #3 (permalink)  
Antiguo 11/11/2011, 22:22
Avatar de matanga
matanga
 
Fecha de Ingreso: octubre-2007
Ubicación: España
Mensajes: 1.091
Antigüedad: 16 años, 6 meses
Puntos: 85
Respuesta: Campo autonumérico no correlativo

Me queda la duda, ¿buscas una forma de crear números correlativos para la clave o solo quieres saber porque no se guardan números correlativos en un identity?.

Si es lo primero, no existe en SQL Server una herramienta built-in que garantice números correlativos, lo tienes que resolver a nivel de aplicación, pero ten en mente que esto no es una propiedad de las claves primarias, por lo que no tiene mucho sentido hacerlo.

Si es lo segundo, los saltos se producen porque, como bien dice iislas, un identity incrementa su valor aunque se haga un rollback del insert, o porque se borran registros de la tabla generando diferencia entre el valor máximo de la clave y el valor actual del identity.

Cita:
Lo único que se ocurre es que haya algún procedimiento que este insertando y eliminando filas de esa tabla y de ahí que ocurra esto, ya que el número siempre va en aumento y nunca disminuye, pero tampoco se como comprobar las transacciones que se estan produciendo en esa tabla, porque con profiler lo veo un tanto engorroso.
La columna identity solo hace incrementos, que se puede definir como negativo o positivo, no ambos. Por otro lado, para ver las transacciones sobre la tabla fuera del Profiler puedes consultar las vistas de administración sys.dm_tran_*, más info en http://msdn.microsoft.com/en-us/library/ms178621.aspx.

Saludos