Die einer Transaktion zugeordneten Sperren werden normalerweise am Transaktionsende freigegeben, so dass die entsprechenden Datenbankobjekte wieder für andere Transaktionen zugänglich sind.
Es gelten folgende Regeln:
· Die durch die LOCK-Anweisung angeforderten Sperren werden mit Beendigung der Transaktion freigegeben, es sei denn, die COMMIT-Anweisung bzw. ROLLBACK-Anweisung, die die Transaktion beendet, beinhaltet ebenfalls eine LOCK-Anweisung.
· Wie lange eine implizit gesetzte Lesesperre gehalten wird, hängt vom Isolation-Level ab.
· Schreibsperren für Zeilen, die noch nicht geändert wurden, und Lesesperren für Zeilen können durch die UNLOCK-Anweisung vor Transaktionsende freigegeben werden.
· Implizit gesetzte Schreibsperren können innerhalb einer Transaktion nicht freigegeben werden.
· Schreibsperren für geänderte Zeilen, Schreibsperren, die durch eine ändernde SQL-Anweisung (INSERT, UPDATE, DELETE) angefordert wurden, und Tabellensperren können innerhalb einer Transaktion nicht freigegeben werden, sondern nur durch das Ende der Transaktion.