sql >> Base de Datos >  >> RDS >> Sqlserver

Buscar el último registro insertado MS SQL SERVER

Según la solicitud de comentario aquí, una solución manual rápida y sucia, suponiendo que tenga la lista de INSERT declaraciones (o los datos correspondientes) en la misma secuencia que el INSERT emitido s. Para este ejemplo, asumo 1 millón de registros.

INSERT ... VALUES (1, ...)
...
INSERT ... VALUES (250000, ...)
...
INSERT ... VALUES (500000, ...)
...
INSERT ... VALUES (750000, ...)
...
INSERT ... VALUES (1000000, ...)

Solo tiene que encontrar el último PK que se ha insertado. Por suerte en este caso hay uno. Así que empiezas a hacer una búsqueda binaria manual en la tabla emitiendo

SELECT pk FROM myTable WHERE pk = 500000

Si obtienes una fila hacia atrás, sabes que llegó tan lejos. Continúe comprobando con pk = 750000 . Por otra parte, si está allí con pk = 875000 . Si 750000 no está allí, entonces INSERT s debe haberse detenido antes. Luego verifique pk = 675000 . Este proceso se detiene en este caso después de 20 pasos.

Es simplemente divide y vencerás manualmente.