SQL Server 和 Oracle 中的自动提交

RPK*_*RPK 7 sql-server-2005 oracle sql-server

多年前我在 Oracle 8 上工作时,我曾经在每次批量插入后手动执行 COMMIT 命令。在 SQL Server 中,默认情况下自动提交是 ON 的,这有好处也有危险。

我想知道新版本的 Oracle 是否仍然默认关闭自动提交?我还想知道如何在 SQL Server 2005 中关闭自动提交。

Jac*_*las 7

甲骨文

来自2000年的 AskTom

... Oracle 操作的唯一方法是“客户告诉我们何时提交”。我们没有自动提交模式。各种工具和 API 的作用(例如:我可以告诉 sqlplus 自动提交,这仅意味着 sqlplus 将在每个语句之后发出提交)。

这仍然是正确的,而且可能永远如此。有关详细说明,commit请参阅Oracle 文档

SQL Server 2000+

来自 SO(倒置):

你可以通过设置implicit_transactions ON来关闭自动提交

或者,如果您愿意,可以从文档(或 Mark 的更直接链接


Mar*_*ith 5

对于 SQL Server,您将SET IMPLICIT_TRANSACTIONS ON

在隐式事务模式下,任何 DML(SELECT, INSERT, DELETE, UPDATE等)或 DDL(CREATE, ALTER, DROP等)都将启动事务,您必须显式COMMITROLLBACK.

或者,可以使用 启动显式事务BEGIN TRANSACTION