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.
只需确保执行commit或rollback执行完查询后.否则,您将运行查询的表将被其他人锁定.