Нужно ли выполнять инструкцию Commit после обновления в SQL Server?

Я сделал некоторые обновления в моей записи через диспетчер SQL Server.

Поскольку оператор Update не имеет явной фиксации, я пытаюсь написать его вручную.

Update mytable
set status=0;
Commit;

Я получаю сообщение, так как Commit не имеет начальной транзакции

2 ответа

Решение

В SQL Server Management Studio включена неявная фиксация, поэтому все выполняемые операторы неявно фиксируются.

Это может быть страшной вещью, если вы работаете в Oracle, где по умолчанию нет автоматического принятия команд, но это не такая большая проблема.

Если вы все еще хотите использовать специальные транзакции, вы всегда можете выполнить

BEGIN TRANSACTION

в системе SSMS, а затем система ожидает, когда вы передадите данные.

Если вы хотите повторить поведение Oracle и запустить неявную транзакцию, всякий раз, когда выдается какой-либо DML/DDL, вы можете установить флажок SET IMPLICIT_TRANSACTIONS в

Tools -> Options -> Query Execution -> SQL Server -> ANSI

Sql-сервер в отличие от oracle не требует коммитов, если вы не используете транзакции.
Сразу же после вашего оператора обновления таблица будет зафиксирована, не используйте команду commit в этом сценарии.

Другие вопросы по тегам