Wenn der Isolation-Level 2 bzw. 20 (repeatable) angegeben ist, dann werden für alle durch eine SQL-Anweisung zur Datenanfrage angesprochenen Tabellen vor Beginn der Bearbeitung implizit Lesesperren angefordert.
Wenn durch eine SQL-Anweisung eine Ergebnistabelle erzeugt wird, die nicht physisch abgespeichert wird, dann werden diese Sperren erst am Ende der Transaktion oder beim Schließen der Ergebnistabelle freigegeben. Anderenfalls erfolgt die Freigabe dieser Sperren unmittelbar nach der Bearbeitung der SQL-Anweisung.
Die Tabellen-Lesesperre wird der Transaktion nicht zugeordnet bei SQL-Anweisungen, bei denen genau eine Zeile einer Tabelle bearbeitet wird, die durch Schlüsselspezifikationen oder durch CURRENT OF <result_table_name> bestimmt wird.
Darüber hinaus gilt, dass der Transaktion für jede während der Bearbeitung einer SQL-Anweisung gelesene Zeile implizit eine Lesesperre zugeordnet wird. Diese Sperren können nur durch eine UNLOCK-Anweisung oder durch Beendigung der Transaktion freigegeben werden.
Beim Einfügen, Ändern und Löschen von Zeilen werden der Transaktion implizit Schreibsperren für die betroffenen Zeilen zugeordnet, die erst am Transaktionsende freigegeben werden. Es werden jedoch keine Sperren für die gesamte Tabelle gesetzt.