Неподтвержденная транзакция, запрашиваемая каждый раз в SQL Server 2012 - PullRequest
0 голосов
/ 03 февраля 2020

У меня возникают проблемы, например, когда я открываю SQL windows и запускаю любую транзакцию SQL (вставка, обновление, удаление или любое изменение в процедуре), он спрашивает о незафиксированной транзакции.

Как исправить это навсегда?

Ответы [ 2 ]

1 голос
/ 03 февраля 2020

Звучит так, как будто вы, вероятно, SET IMPLICIT_TRANSACTIONS включены.

Это неявно откроет новую транзакцию, когда она встретит операторы, такие как вставка, обновление или удаление, и никакая транзакция не будет открыта и будет требует явного commit или rollback.

Неявные транзакции могут неожиданно включиться из-за настроек по умолчанию ANSI. Подробнее см. SET ANSI_DEFAULTS (Transact- SQL). IMPLICIT_TRANSACTIONS ON не пользуется популярностью. В большинстве случаев, когда IMPLICIT_TRANSACTIONS включен, это происходит потому, что был сделан выбор SET ANSI_DEFAULTS ON.

Вам необходимо go в свойствах соединения и убедиться, что вы не включили неявные транзакции либо явно или неявно.

0 голосов
/ 03 февраля 2020

Когда вы используете BEGIN TRANSACTION, вам также нужно либо COMMIT TRANSACTION, если он правильно выполнил всю работу, которую вы хотите, либо ROLLBACK TRANSACTION, если были проблемы, и вы хотите вернуться в состояние до начала транзакции. .

Подробнее о транзакциях здесь

...