Implizite Transaktionen
Wenn eine Verbindung sich im impliziten Transaktionsmodus befindet, startet SQL Server Database Engine (Datenbankmodul) automatisch eine neue Transaktion, nachdem für die aktuelle Transaktion ein Commit oder Rollback ausgeführt wurde. Die Kennzeichnung des Starts einer Transaktion entfällt; Sie führen nur einen Commit oder Rollback für die einzelnen Transaktionen aus. Im impliziten Transaktionsmodus wird eine fortlaufende Kette von Transaktionen generiert.
Nachdem der implizite Transaktionsmodus für eine Verbindung aktiviert wurde, startet Database Engine (Datenbankmodul) automatisch eine Transaktion, wenn eine dieser Anweisungen zum ersten Mal ausgeführt wird:
ALTER TABLE |
INSERT |
CREATE |
OPEN |
DELETE |
REVOKE |
DROP |
SELECT |
FETCH |
TRUNCATE TABLE |
GRANT |
UPDATE |
Die Transaktion bleibt so lange aktiv, bis Sie eine COMMIT- oder eine ROLLBACK-Anweisung eingeben. Nachdem ein Commit oder Rollback für die erste Transaktion ausgeführt wurde, startet Database Engine (Datenbankmodul) automatisch eine neue Transaktion, wenn eine dieser Anweisungen von der Verbindung ausgeführt wird. Die Instanz generiert so lange eine Kette impliziter Transaktionen, bis der implizite Transaktionsmodus deaktiviert wird.
Der implizite Transaktionsmodus wird entweder mithilfe der SET-Anweisung von Transact-SQL oder über Datenbank-API-Funktionen und -Methoden festgelegt.
Hinweis |
---|
In einer MARS-Sitzung (Multiple Active Result Sets) wird eine implizite Transact-SQL-Transaktion zu einer Transaktion mit Batchbereich. Wenn für die Transaktion mit Batchbereich beim Beenden des Batches noch kein Commit oder Rollback ausgeführt wurde, führt SQL Server ein automatisches Rollback der Transaktion aus. Weitere Informationen finden Sie unter Steuern von Transaktionen (Datenbankmodul) und Transaktionsanweisungen (Transact-SQL). |