Consecutivo al INSERTAR

publicado por: Anonymous

Tengo esta consulta

INSERT INTO [SI_Consecutivo] 
(SI_Num_Inventario, SI_Nombre, SI_Fecha_Creacion, SI_Estado, SI_Almacen, SI_Num_Conteo) 
VALUES (1, 'uno',  GETDATE(), 0,'cdis', 1 + FLOOR(RAND() * 1 ))

la ejecuto mediante un boton en javascript. lo que estoy tratando de hacer es que al insertar en el campo SI_Num_Conte me guarde como si fuera un consecutivo, es decir, que me quedari 1, si le vuelvo a dar en el boton me guardar me sume el que guarde anteriormente + 1, y asi hasta el fin de los tiempos.

solución

Si cambias el campo a identity puede llegar un momento en el que el numero no sea consecutivo debido a alguna transaccion que no se termine o algun otro factor de ese tipo, identity no se deberia usar para este fin.
Por otro lado si quieres tener un valor consecutivo en cada campo nuevo recomendaria un

INSERT INTO [SI_Consecutivo] 
(SI_Num_Inventario, SI_Nombre, SI_Fecha_Creacion, SI_Estado, SI_Almacen, SI_Num_Conteo) 
VALUES (1, 'uno',  GETDATE(), 0,'cdis', (SELECT MAX(SI_Num_Conte)+1 FROM SI_Consecutivo ))

o incluso crear una funcion con el mismo query

SELECT MAX(SI_Num_Conte)+1 FROM SI_Consecutivo 

y mandar a llamar la funcion en cada insert

Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *