Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Suchen Sie nach dem zuletzt eingefügten Datensatz MS SQL SERVER

Gemäß der Kommentaranfrage hier eine schnelle und schmutzige manuelle Lösung, vorausgesetzt, Sie haben die Liste von INSERT Anweisungen (bzw. die dazugehörigen Daten) in der gleichen Reihenfolge wie das ausgegebene INSERT s. Für dieses Beispiel gehe ich von 1 Million Datensätzen aus.

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

Sie müssen nur das letzte PK finden, das eingefügt wurde. Zum Glück gibt es in diesem Fall einen. Sie beginnen also mit einer manuellen binären Suche in der Tabelle, die

ausgibt
SELECT pk FROM myTable WHERE pk = 500000

Wenn Sie eine Reihe zurückbekommen, wissen Sie, dass es so weit gekommen ist. Fahren Sie mit der Überprüfung mit pk = 750000 fort . Dann nochmal, wenn es da ist mit pk = 875000 . Wenn 750000 nicht da ist, dann INSERT s muss früher aufgehört haben. Suchen Sie dann nach pk = 675000 . Dieser Vorgang bricht in diesem Fall nach 20 Schritten ab.

Es ist einfach nur manuelles Teilen und Erobern.