Как Вы устанавливаете автоматическую фиксацию на сессии SQL Server?

l=['a', 1, 'b', 2]

print str(l)[1:-1]

Output: "'a', 1, 'b', 2"
62
задан hawkeye 7 July 2009 в 03:31
поделиться

2 ответа

Вы можете включить автоматическую фиксацию, установив для implicit_transactions OFF:

SET IMPLICIT_TRANSACTIONS OFF

Когда настройка включена, выполняется возврат в режим неявной транзакции. В режиме неявной транзакции каждое вносимое вами изменение запускает транзакцию, которую вы должны фиксировать вручную.

Может быть, более ясен пример. Это запишет изменение в базу данных:

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

Это не будет записывать изменение в базу данных:

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

В следующем примере будет обновлена ​​строка, а затем будет жаловаться, что нет транзакции для фиксации:

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

Как сказал Митч Уит , autocommit является значением по умолчанию для Sql Server 2000 и выше.

83
ответ дан 24 November 2019 в 16:40
поделиться

Autocommit is SQL Server's default transaction management mode. (SQL 2000 onwards)

Ref: Autocommit Transactions

9
ответ дан 24 November 2019 в 16:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: