Datenbankeintrag zum Bearbeiten sperren

Ich habe eine SQL Server 2008-Datenbank und ein asp.net-Frontend.

Ich möchte eine Sperre implementieren, wenn ein Benutzer gerade einen Datensatz bearbeitet, aber nicht sicher ist, welcher Ansatz der beste ist.

Meine Idee ist eineisLocked Die Spalte für die Datensätze wird auf true gesetzt, wenn ein Benutzer diesen Datensatz abruft. Dies bedeutet, dass alle anderen Benutzer nur Lesezugriff haben, bis der erste Benutzer die Bearbeitung abgeschlossen hat.

Was ist jedoch, wenn in der Sitzung eine Zeitüberschreitung auftritt und der Datensatz nie gespeichert / aktualisiert wird? Der Datensatz bleibt beiisLocked = true, was bedeutet, dass andere es nicht bearbeiten können, oder?

Wie kann ich eine Art Session-Timeout implementieren und habenisLocked wird automatisch auf false gesetzt, wenn die Sitzung abgelaufen ist (oder nach einem vordefinierten Zeitraum)

Sollte dies auf der asp.net-Seite oder der SQL-Seite implementiert werden?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage