Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Wie legen Sie Autocommit in einer SQL Server-Sitzung fest?

Sie können Autocommit einschalten, indem Sie implicit_transactions auf OFF setzen:

SET IMPLICIT_TRANSACTIONS OFF

Wenn die Einstellung ON ist, kehrt es zum impliziten Transaktionsmodus zurück. Im impliziten Transaktionsmodus startet jede von Ihnen vorgenommene Änderung eine Transaktion, die Sie manuell festschreiben müssen.

Vielleicht ist ein Beispiel klarer. Dadurch wird eine Änderung in die Datenbank geschrieben:

SET IMPLICIT_TRANSACTIONS ON
UPDATE MyTable SET MyField = 1 WHERE MyId = 1
COMMIT TRANSACTION

Dadurch wird keine Änderung in die Datenbank geschrieben:

SET IMPLICIT_TRANSACTIONS ON
UPDATE MyTable SET MyField = 1 WHERE MyId = 1
ROLLBACK TRANSACTION

Das folgende Beispiel aktualisiert eine Zeile und beschwert sich dann, dass keine Transaktion zum Festschreiben vorhanden ist:

SET IMPLICIT_TRANSACTIONS OFF
UPDATE MyTable SET MyField = 1 WHERE MyId = 1
ROLLBACK TRANSACTION

Wie Mitch Wheat sagte, ist Autocommit die Standardeinstellung für SQL Server 2000 und höher.