Estoy en la versión 1.8.3.0. He visto que en algunas pantallas, cuando se crea un nuevo registro el código que le asigna no es un consecutivo del registro anterior, creí que era porque el identity de la tabla en la instalación estaba con otro número, pero luego en la pantalla de puestos el cliente estaba creando puestos normalmente e iba por el código 83 por ejemplo, y luego cuando creo otro puesto le asigno el código 1003, se que no es crítico y no afecta al sistema, por temas de orden en los registros le puede causar problema al cliente. ¿Por que razón podría pasar esto? |
Esto es algo que en realidad no tiene que ver con Evolution ya que es el SQL Server el que controla el identity. Si es SQL Server 2012 o superior, Microsoft cambió la forma de manejar el identity metiendo algunos valores pre localizados, entiendo que para optimizarlo. Aca te dejo un foro del Stackoverflow en donde lo explica y ademas te dice como cambiarlo, aunque tomando en cuenta que es una mejora no sería bueno desactivarlo. Otra razón por la cual pueden quedar espacios entre códigos es cuando eliminas registros ya que el SQL siempre deja reservados estos espacios, aunque me imagino que este no es tu caso. |
Compañeros de Desarrollo, es conveniente habilitar el parametro "-T272" en SQL SERVER 2012 o 2014, para evitar las brechas (o saltos de números) en los CAMPOS IDENTITY, ya que dichos saltos crean inestabilidad y en cierto modo inseguridad, y crean duda en cuanto a que tan rápido se llegará al último número posible y pueda tronar EVOLUTION por llegar al máximo numero aceptado por el tipo de dato. En cada nueva implementación que hago con EVOLUTION surge esta incógnita y el problema de los saltos. Les comparto lo que dice el link sugerido por Raul: Quedo en espera de sus sugerencias. |
Según este otro foro los "saltos" en los correlativos suceden cuando se reinicia el servidor y/o el servicio de base datos. A menos que el servidor se esté reiniciando constantemente, es poco probable que se estén generando estos saltos. Adicionalmente también en el foro se menciona que encender el trace flag 272 podría afectar el desempeño de la generación de los correlativos, y aun encendiendo ese flag no es 100% seguro que no existan saltos |
Totalmente deacuerdo compañero, pero esto hoy en día es más frecuente, ya que los SERVIDORES que se usan en la actualidad son VIRTUALES, lo cual hace que la probabilidad de reinicio suceda más a menudo. Que pasará cuando los campos de X tablas lleguen al máximo número permitido, debido a estos saltos? |
Jóvenes esto se resuelve en SQLSERVER 2017: Pueden consultar más información en: https://docs.microsoft.com/en-us/sql/sql-server/what-s-new-in-sql-server-2017 |