none
Error en Identuty RRS feed

  • Pregunta

  • Buenas noches a todos. Bueno les cuento. Tengo mi bd la cual es relativamente pequeña, 10 o 12 tablas. Lo que me he fijado es que en las tablas donde más se hacen transacciones de inserción el valor incremental a saltado desde el 65 (último hasta ayer) hasta el 1001 (primer registro del día de hoy)...todas estas inserciones se hacen a través de una aplicación creada en C# (Aplicación de escritorio).

    Por que se producen estos saltos tan grandes?? alguien que le haya pasado antes y lo haya podido solucionar??? espero me puedan ayudar a entender este comportamiento.

    Gracias por todo...Saludos

    martes, 16 de mayo de 2017 4:31

Respuestas

  • Es un cambio que introdujeron en la versión 2012 para acelerar la generación de los identity. Si quieres desactivarlo, puedes iniciar SQL Server con el Trace Flag 272 (poniendo "-T272" en los parámetros de arranque del servicio), pero perderás la mejora de rendimiento, y en cualquier caso seguirá sin estar garantizado que los Identity sean consecutivos dado que puede perderse un valor si se hace rollback de una transacción que ya haya consumido un valor del identity.
    martes, 16 de mayo de 2017 6:40
  • ...me gustaría que los identity fueran secuenciales a la hora de hacer inserción..

    No, la propiedad IDENTITY no garantiza valores consecutivos, si necesitas de una secuencia sin gaps debes de escribir las rutinas y mantener los cuidados necesarios para gestionar la serie.


    Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.
    • Marcado como respuesta Enrique Aleman martes, 16 de mayo de 2017 19:14
    martes, 16 de mayo de 2017 17:55

Todas las respuestas

  • Es un cambio que introdujeron en la versión 2012 para acelerar la generación de los identity. Si quieres desactivarlo, puedes iniciar SQL Server con el Trace Flag 272 (poniendo "-T272" en los parámetros de arranque del servicio), pero perderás la mejora de rendimiento, y en cualquier caso seguirá sin estar garantizado que los Identity sean consecutivos dado que puede perderse un valor si se hace rollback de una transacción que ya haya consumido un valor del identity.
    martes, 16 de mayo de 2017 6:40
  • Estimado, Gracias por responder, pero, por que dices que se perderá la mejora de rendimiento? 

    me gustaría que los identity fueran secuenciales a la hora de hacer inserción..

    otra cosa, como podría iniciar el SQL con el Trace flag 272?? perdón pero en eso no estoy muy informado.

    Saludos y gracias!!

    martes, 16 de mayo de 2017 16:30
  • ...me gustaría que los identity fueran secuenciales a la hora de hacer inserción..

    No, la propiedad IDENTITY no garantiza valores consecutivos, si necesitas de una secuencia sin gaps debes de escribir las rutinas y mantener los cuidados necesarios para gestionar la serie.


    Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.
    • Marcado como respuesta Enrique Aleman martes, 16 de mayo de 2017 19:14
    martes, 16 de mayo de 2017 17:55