And*_*mar 83

您可以通过将implicit_transactions设置为OFF来启用自动提交:

SET IMPLICIT_TRANSACTIONS OFF
Run Code Online (Sandbox Code Playgroud)

设置为ON时,将返回隐式事务模式.在隐式事务模式中,您所做的每个更改都会启动您必须手动提交的事务.

也许一个例子更清楚.这将写入数据库的更改:

SET IMPLICIT_TRANSACTIONS ON
UPDATE MyTable SET MyField = 1 WHERE MyId = 1
COMMIT TRANSACTION
Run Code Online (Sandbox Code Playgroud)

这不会写入数据库的更改:

SET IMPLICIT_TRANSACTIONS ON
UPDATE MyTable SET MyField = 1 WHERE MyId = 1
ROLLBACK TRANSACTION
Run Code Online (Sandbox Code Playgroud)

以下示例将更新一行,然后抱怨没有要提交的事务:

SET IMPLICIT_TRANSACTIONS OFF
UPDATE MyTable SET MyField = 1 WHERE MyId = 1
ROLLBACK TRANSACTION
Run Code Online (Sandbox Code Playgroud)

就像Mitch Wheat说的那样,autocommit是Sql Server 2000及以上的默认设置.


Wat*_*att 47

我想要一种更永久,更快捷的方式.因为在编写实际的Update/Insert查询之前,我倾向于忘记添加额外的行.

我通过选中Options中的SET IMPLICIT_TRANSACTIONS复选框来完成它.导航到选项在Microsoft SQL Server Management Studio中选择工具>选项>查询执行> SQL Server> ANSI.

只需确保执行commitrollback执行完查询后.否则,您将运行查询的表将被其他人锁定.

  • 我试过,我可以确认它看起来与编写SET IMPLICIT_TRANSACTIONS ON完全相同,因为它似乎是24小时内更正确的答案我会奖励赏金. (2认同)

Mit*_*eat 9

Autocommit是SQL Server的默认事务管理模式.(SQL 2000起)

参考:自动提交交易