wie bekommt man die Id des letzen Zeile gelöscht aus der SQL-Tabelle
Ich versuche, die Letzte Id mit max(Id) - Funktion, wo die Id ist der Primärschlüssel. Mein code funktioniert gut, es sei denn, ich lösche Letzte Zeile aus der Tabelle, da beim löschen der letzten Zeile dann die Id ist noch erhalten und in diesem Fall max(Id) ruft die Letzte Zeile, die Id aber nicht, die Id aus der Tabelle gelöscht.
Gibt es eine Funktion, die das abrufen der letzten Zeile gelöscht Id. Ich habe einige Beiträge über scope_identity()
und @@identity
Funktionen, um die aktuelle Id. Benutzt habe ich diese Funktionen aber Sie funktionieren nicht. Ich bin Bearbeiten der my-code in einer dll-Datei kann dat ist die Schaffung problem.
- Sie scheinen zu tun, eine Menge Arbeit mit .dat-Dateien.
- Was sind Sie wirklich versuchen, zu tun? Sie präsentieren uns Ihre Lösung und läuft in eine Straße blockieren, und ich vermute, es ist etwas, was Sie zu tun versuchen ist, das die Lösung. Nehmen wir wieder einen Schritt zu dem, was der Bedarf ist und wir möglicherweise in der Lage, einen alternativen Ansatz insgesamt. Sind Sie versuchen zu Holen Sie sich die höchste id immer verwendet? Natürlich kann ich keine zusagen machen ;).
- Möchten Sie vielleicht zu überdenken, wie Sie die Zeilen löschen, wie gut. "Best practice" ist zum löschen durch primary key, Wann immer möglich, so dass Sie sollte wirklich die ID, bevor Sie das löschen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie SQL 2005 oder höher können Sie die OUTPUT-Klausel verwenden, um die id für die Zeile gelöscht.
Schauen Sie sich diesen link für ein gutes Beispiel
Können Sie erstellen einen TRIGGER FÜR DELETE-Ereignis, und legen Sie in eine log-Tabelle der gelöschten Datensätze.
Dann können Sie die Abfrage für die Tabelle myLogtable für die gelöschten Datensätze.
@@Identity und Scope_Identity() nur den letzten identity-Wert für die aktuelle Sitzung.
Um die höchstmögliche identity-Wert, hat immer zugewiesen wurde, um eine Tabelle (auch wenn einige von Ihnen gelöscht wurden), können Sie sich Ident_Current
BOL beschreibt es wie folgt:
IDENT_CURRENT gibt den letzten Identitätswert generiert, die für eine bestimmte Tabelle in einer Sitzung oder einem Gültigkeitsbereich
http://msdn.microsoft.com/en-us/library/ms175098.aspx