Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (Deutsch) » SQL Anywhere Server - SQL-Referenzhandbuch » Verwendung von SQL » SQL-Anweisungen » SQL-Anweisungen (A-D)

 

COMMIT-Anweisung

Mit dieser Anweisung machen Sie Änderungen in der Datenbank dauerhaft oder Sie beenden eine benutzerdefinierte Transaktion.

Syntax 1
COMMIT [ WORK ]
Syntax 2
COMMIT TRAN[SACTION] [ Transaktionsname ]
Parameter
Bemerkungen

Syntax 1   Die COMMIT-Anweisung beendet eine Transaktion und macht alle Änderungen in der Datenbank dauerhaft, die während dieser Transaktion gemacht wurden.

Alle Datendefinitionsanweisungen schreiben automatisch fest. Weitere Hinweise finden Sie in der Rubrik "Nebenwirkungen" für jede SQL-Anweisung.

Die COMMIT-Anweisung schlägt fehl, wenn der Datenbankserver einen ungültigen Fremdschlüssel feststellt. Dadurch kann eine Transaktion mit einem ungültigen Fremdschlüssel nicht beendet werden. Im Allgemeinen wird Fremdschlüsselintegrität bei jeder Datenmanipulationsoperation überprüft. Wenn jedoch die Datenbankoption wait_for_commit auf "On" gesetzt ist oder ein bestimmter Fremdschlüssel durch eine CHECK ON COMMIT-Option definiert wurde, überprüft der Datenbankserver die Integrität erst, wenn die COMMIT-Anweisung ausgeführt wird.

Syntax 2   Sie können die Anweisungen BEGIN TRANSACTION und COMMIT TRANSACTION paarweise verwenden, um verschachtelte Transaktionen zu erstellen. Verschachtelte Transaktionen haben Ähnlichkeit mit Savepoints. Wenn sie als äußerste von einer Reihe verschachtelter Transaktionen ausgeführt wird, macht die Anweisung Änderungen in der Datenbank dauerhaft. Wenn die COMMIT TRANSACTION-Anweisung innerhalb einer Transaktion ausgeführt wird, führt das zu einer Herabsetzung der Verschachtelungsebene um eins. Bei verschachtelten Transaktionen werden die Änderungen an der Datenbank nur durch die äußerste COMMIT-Anweisung permanent.

Syntax 2 ist eine Erweiterung von Transact-SQL.

Berechtigungen

Keine.

Nebenwirkungen

Schließt jeden Cursor, der nicht mit WITH HOLD geöffnet wurde

Löscht alle Zeilen deklarierter temporärer Tabellen in dieser Verbindung, es sei denn, sie wurden mit ON COMMIT PRESERVE ROWS deklariert

Siehe auch
Standards und Kompatibilität
  • SQL/2003   Syntax 1 ist eine Kernfunktion. Syntax 2 ist eine Erweiterung von Transact-SQL.

Beispiel

Die folgende Anweisung schreibt die aktuelle Transaktion fest:

COMMIT;

Der folgende Transact-SQL-Batch meldet aufeinanderfolgende Werte von @@trancount als "0", "1", "2", "1", "0".

PRINT @@trancount
BEGIN TRANSACTION
PRINT @@trancount
BEGIN TRANSACTION
PRINT @@trancount
COMMIT TRANSACTION
PRINT @@trancount
COMMIT TRANSACTION
PRINT @@trancount
go