How do you set autocommit in an SQL Server session?
+2
A:
Autocommit is SQL Server's default transaction management mode. (SQL 2000 onwards)
Mitch Wheat
2009-07-07 03:38:44
+2
A:
You can turn autocommit ON by setting implicit_transactions OFF:
SET IMPLICIT_TRANSACTIONS OFF
When the setting is ON, it returns to implicit transaction mode. In implicit transaction mode, every change you make starts a transactions which you have to commit manually.
Maybe an example is clearer. This will write a change to the database:
SET IMPLICIT_TRANSACTIONS ON
UPDATE MyTable SET MyField = 1 WHERE MyId = 1
COMMIT TRANSACTION
This will not write a change to the database:
SET IMPLICIT_TRANSACTIONS ON
UPDATE MyTable SET MyField = 1 WHERE MyId = 1
ROLLBACK TRANSACTION
The following example will update a row, and then complain that there's no transaction to commit:
SET IMPLICIT_TRANSACTIONS OFF
UPDATE MyTable SET MyField = 1 WHERE MyId = 1
ROLLBACK TRANSACTION
Like Mitch Wheat said, autocommit is the default for Sql Server 2000 and up.
Andomar
2009-07-07 07:43:38
Set to OFF, its not in Implicit transaction mode, hence all commands are run transaction-less (i.e. immediate update with no rollback). Set to ON, any command that requires will start a transaction and require you to commit or rollback.
ck
2009-07-07 07:55:40
Thanks ck, typo corrected!
Andomar
2009-07-07 09:14:08