Согласно документации для Скрытых транзакций :
- Вы должны специально включить его для подключения
- Когда эта опция включена, каждый раз, когда вы совершаете или ВЫХОДИТЕ транзакцию, при следующей команде, которая в ней нуждается, запускается новая (список в документации)
Это означает, что:
- Когда эта функция включена, вы всегда должны использовать COMMIT или ROLLBACK
Ваш вопрос также может касаться разницы между неявными и явными транзакциями.
Microsoft SQL Server всегда выполняет модификации (упрощенно, есть некоторые вещи, которые выполняются без, например массовая вставка) в транзакции. Другими словами, если вы специально не открывали транзакцию, то ниже показано, как выполняется каждая модификация:
try
... modification here (update, insert, delete...)
on exception
rollback
on success
commit