Ich habe Spalte in meiner Tabelle, sagen updateStamp
. Ich möchte einen Ansatz erhalten, um dieses Feld mit einer neuen fortlaufenden Nummer nach Zeilenaktualisierung zu aktualisieren.SQL Server - Wie generiere ich eine eindeutige fortlaufende Nummer beim Update
Die Datenbank hat viel Verkehr, meist gelesen, aber mehrere gleichzeitige Aktualisierungen können auch in Stapeln passieren. Daher sollte die Lösung minimale Sperren verursachen.
Grund für diese Anforderung ist, dass ich eine Lösung für Clients haben muss, um über die Tabelle vorwärts zu iterieren und wenn eine Zeile aktualisiert wird - sollte es wieder in der Ergebnismenge kommen.
So Abfrage wäre dann wie
SELECT *
FROM mytable
WHERE updateStamp > @lastReturnedUpdateStamp
ORDER BY updateStamp
Leider nicht Zeitstempel hier arbeiten, weil mehrere Updates zur gleichen Zeit passieren könnten.
Was Version von SQL Server sind Sie eingeschaltet? Wenn SQL Server 2008, denke ich, "Change Tracking" tut, was Sie brauchen, und löst subtile Probleme mit "Zeitstempel" und Transaktions-Commit-Zeiten. –
2008 R2 benutze ich. Danke für den Vorschlag! Ich war mir dieser Eigenschaft nicht bewusst. Obwohl dies ein Overkill für meine Anforderungen ist. – user431529