PDA

Ver la Versión Completa : Salto de Secuencia Identidad SQL Server


feliz-58
04-02-2020, 05:58:23
Saludos a todos!,

Como Saben el SQL da esa falla de saltar la secuencia de la indetidad en un campo entero autoincrementable configurado para 1, vi que se agrega en la configuracion el -t272 a algunos les funciona, pero a mi no, alguna otra solucion que no sea quitar el autoincrementable, a fin de cuentas?

Gracias! ^\||/

mamcx
04-02-2020, 15:25:51
Mira esta informacion:

https://dba.stackexchange.com/questions/88930/identity-value-jumps-when-restarting-sql-server

NOTA: Es un error de logica CREER que un autoincrement no "salta" valores. Eso NO ES una garantia de los autoincrement. La UNICA garantia es esta: El valor se incrementa.

Eso es todo.

Si necesitas un valor que no "salte" TIENES que programar eso.

P.D: Esto hace parte de un conjunto de cosas que los programadores "evadimos" por pereza, como suponer que la fecha del sistema no puede ir hacia atras, que si le sumo 1 segundo a la fecha la siguiente fecha sera mas 1 segundo, que darle guardar a un archivo guarda el archivo, que si le doy "archivo existe?" y luego "abrir archivo!" entonces abrir no puede fallar, etc.

Aun cuando vivamos bajo la ilusion que luego de 1 sigue 2, y que todo es sequencial, solo se garantiza causalidad cuando:

1- Usamos un atomic de la CPU
2- Usamos transacciones
3- Usamos un log y hacemos un replay del log

feliz-58
05-02-2020, 04:50:00
Mira esta informacion:

https://dba.stackexchange.com/questions/88930/identity-value-jumps-when-restarting-sql-server

NOTA: Es un error de logica CREER que un autoincrement no "salta" valores. Eso NO ES una garantia de los autoincrement. La UNICA garantia es esta: El valor se incrementa.

Eso es todo.

Si necesitas un valor que no "salte" TIENES que programar eso.

P.D: Esto hace parte de un conjunto de cosas que los programadores "evadimos" por pereza, como suponer que la fecha del sistema no puede ir hacia atras, que si le sumo 1 segundo a la fecha la siguiente fecha sera mas 1 segundo, que darle guardar a un archivo guarda el archivo, que si le doy "archivo existe?" y luego "abrir archivo!" entonces abrir no puede fallar, etc.

Aun cuando vivamos bajo la ilusion que luego de 1 sigue 2, y que todo es sequencial, solo se garantiza causalidad cuando:

1- Usamos un atomic de la CPU
2- Usamos transacciones
3- Usamos un log y hacemos un replay del log

Entiendo tu punto, pero no crees que si la opción para que el campo sea autoincrementable está ahí, y además también te permite espesificar cuánto se va a incrementar por cada registro nuevo, no es por algo? Me refiero al hecho de que es cierto lo que dices, no se hace a código por pereza, pero si yo hago una herramienta y le pongo la opción para evitar hacer más trabajo, no debo entonces corregir esas "fallas" porque por algo puse la opción, de lo contrario mejor no pongo la opción ahí y punto, cada uno hágalo como crea...

También es un error de lógica creer que porque algo no funciona entonces vamos a buscar soluciones subyacentes en vez de resolver el problema directamente de la fuente, te imaginas si a todos los problemas le buscarnos soluciones temporales y subyacentes?

Saludos.