Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Rechercher le dernier enregistrement inséré MS SQL SERVER

Selon la demande de commentaire, voici une solution manuelle rapide et sale, en supposant que vous avez la liste de INSERT déclarations (ou les données correspondantes) dans le même ordre que le INSERT émis s. Pour cet exemple, je suppose 1 million d'enregistrements.

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

Il vous suffit de trouver le dernier PK qui a été inséré. Heureusement dans ce cas il y en a un. Vous commencez donc à faire une recherche binaire manuelle dans la table délivrant

SELECT pk FROM myTable WHERE pk = 500000

Si vous obtenez une rangée en arrière, vous savez qu'elle est allée si loin. Continuez à vérifier avec pk = 750000 . Là encore, s'il est là avec pk = 875000 . Si 750000 n'est pas là, alors le INSERT s ont dû s'arrêter plus tôt. Vérifiez ensuite pk = 675000 . Ce processus s'arrête dans ce cas après 20 étapes.

C'est tout simplement une division manuelle pour mieux régner.